Jump to content
Unity Insider Forum

TurTur

Members
  • Content count

    34
  • Joined

  • Last visited

  • Days Won

    1

TurTur last won the day on October 28 2015

TurTur had the most liked content!

Community Reputation

6 Neutral

About TurTur

  • Rank
    Advanced Member
  • Birthday 12/06/1952

Profile Information

  • Gender
    Male
  • Location
    Niedersachsen, Burgdorf

Recent Profile Visitors

1,141 profile views
  1. TurTur

    System.Serializable: Werte vorgeben

    Hallo Sascha, Stimmt leider genauso. Die Idee ging auf eine Lösung für ein ScriptableObject zurück, für das ein Initialwert eingetragen wird, der dann beim Start (Playmodus) einer "RunTimevariable" zugewiesen wird, mit der Möglichkeit der Reinitialisierung. Von Nachteil ist in diesem Fall aber die Tatsache, das diese Runtime-Variable als [NONSERIALIZED] definiert werden muss (aus den von dir genannten Gründen) und damit leider auch nicht im Inspector zu sehen ist. Und da ich vermute das Haegar Daten auch im Inspector eingeben will, ist die einfachste wohl auch die beste Lösung . Gruß TurTur
  2. TurTur

    System.Serializable: Werte vorgeben

    Es wird zwar richtig initialisiert, lässt sich im Editor aber nicht mehr ändern. Sorry
  3. TurTur

    System.Serializable: Werte vorgeben

    Hi Haegar, der Hinweis von Sascha auf " ISerializationCallbackReceiver " hat mich auf eine Idee gebracht, die ich mal im Zusammenhang mit ScriptableObjects gefunden habe. Dort wird das "OnAfterDeserialize()"-Event verwendet, um Defaultwerte zu prüfen/setzen. [Serializable] public class cGewinnSplit: ISerializationCallbackReceiver { public int Geldgewinn; public int GeldsplitA; public int GeldsplitB; public int GeldSofortAddier; public void OnAfterDeserialize() { Geldgewinn = -1; GeldsplitA = -1; GeldsplitB = -1; GeldSofortAddier = -1; } public void OnBeforeSerialize() { } } Für deinen Anwendungsfall (Array) scheint es zu funktionieren, auch im Editor. Gruß TurTur
  4. TurTur

    Dynamischer Wasserfall

    Schau dir mal dieses Tutorial an. Könnte sein, das es deinen Vorstellungen entspricht, sieht richtig gut aus. https://www.youtube.com/watch?v=XhSp8nFLUi4 Gruß TurTur
  5. Herzlich Willkommen hier im Forum. Gruß TurTur
  6. TurTur

    LOD

    Hey, zu deiner Frage 2 schau mal hier nach https://answers.unity.com/questions/1470341/what-is-the-meaning-of-active-lod-bias-is-20-dista.html Wenn ich es richtig interpretiere legt dieser Wert fest, in welchem Maße ein Objekt detailreicher oder weniger detailreich gerendert wird, wenn diese Objekt sich von der Entfernung her zwischen zwei LOD-Levelgrenzen befindet. Gruß TurTur Edit: Zu deiner Frage 1 (hat mich jetzt auch mal interessiert) schau mal hier nach https://forum.unity.com/threads/automatic-lod-on-import.238814/ Ist wohl nur eine Frage der Namensgebung der einzelnen Objekte im FBX-File. Gruß TurTur
  7. TurTur

    Target speichern möglich?

    Was devandart meint ist folgendes: du erstellst eine neue C#-Datei in deinem Script-Folder, bennenst sie in " webCamScript.cs" um und fügst den Code ein. Diese Datei ziehst du dir auf dein Camera-Object (Dragdrop) und hast danach eine neue komponente in deinem Camera-Object. Wenn die Camera im Inspector angezeigt wird, kannst du das Script auch in den Inspector ziehen.
  8. TurTur

    Animation abspielen bei Objektzerstörung

    Hi, setze mal zu Testzwecken in der Start()-Routine den Lebenswert auf "0" (nicht auf 3). Dann sollte deine Bedingungsabfrage (wert < 1) auch greifen und deine Routine "IsDead()" aufgerufen werden. Die andere Möglichkeit wäre "IsDead()" direkt aus der Start()-Routine aufzurufen (zu Testzwecken), um zu schauen wie sie arbeitet. Gruß TurTur
  9. TurTur

    Animation abspielen bei Objektzerstörung

    Hi, füge "IsDead()" noch die Zeile explosion.play(); hinzu und es sollte gehen.
  10. TurTur

    Animation abspielen bei Objektzerstörung

    Hi, zu deiner Fehlermeldung: Die besagt nur, das in dem angegebenen Script in Zeile 21 eine Klammer "}" zu viel existiert. Das kann mal passieren, wenn man ganze Codeblöcke kopiert. Überprüf mal den Syntax in den Zeilen davor oder in der gesamten betreffenden Funktion. Wenn du solche Fehler nicht beseitigst, weigert sich Unity zu laufen 🙁. Dein anderes Problem hat wohl mit dem Object-Typ zu tun. Deine Public-Variable ist vom Typ "GameObject" und deine Animation vom Typ "Animation". Das passt leider nicht. Erstell dir ein Empty-GameObject, häng die Animation dran und speichere es als Prefab ab. Dieses kannst du dann problemlos in den Slot ziehen 🙂. Edit: Jetzt habe ich mich dummerweise auf das Script von KaBau bezogen. In deinem ersten Post steht ja schon "Animation" (habe ich bei dem "dunklen Skin" dieser Seite gar nicht lesen können). Sorry. Aber Jörg hat recht. Check mal ob das Problem nach der Fehlerbeseitigung nicht auch weg ist.
  11. TurTur

    Rich Text Quad

    Wenn du die Icons nur am Ende plaziersren willst, könntest du die Länge des Textobjektes ermitteln ... float length = myText.cachedTextGenerator.GetPreferredWidth(myText.text, myText.GetGenerationSettings(myText.GetComponent<RectTransform>().rect.size)); ... und das Icon entsprechend plazieren ("myText" ist ein UI-Text-Objekt),
  12. TurTur

    Cursor Problem

    Ha, World Space Canvas/UI , das war das Zauberwort und wir waren hier auf der falschen Schiene. Das hättest du ruhig eher sagen können. Du hast eine UI in der 3D-Welt. Bei dir ist das Teil z.B. an der Werkbank fixiert und wird sichtbar wenn du die Taste "E" drückst, und bleibt auch da, wenn du dich wegdrehst (?). Wenn dem so ist, kann der Cursor ruhig in der Mitte bleiben, da du ja das Menü quasi unter dem Cursor bewegen kannst (durch die Kamerabewegung). Da ich damit noch nicht gearbeitet habe, hier mal ein Link zum selben Problem. Da gibt es eine Checkliste, die du mal durchgehen solltest. https://answers.unity.com/questions/941790/world-space-unityui-buttons.html Möglicherweise löst es schon dein Problem. Edit: War ich doch zu langsam. Hauptsache ist es klappt.
  13. TurTur

    Cursor Problem

    Innerhalb der UI (ich vermute mal Canvas-Object mit Panel, Button, ..) brauchst du kein Raycast. Für diese Object einfach im Inspector das OnClick-Ereignis mit einer Function belegen, die dann ausgelöst wird. Ein Raycast ist eigentlich für die 3D-Welt gedacht (habe ich bei "3dUIs" vermutet).
  14. TurTur

    Cursor Problem

    Bis jetzt nur im Editor, da die Maus aber ein Systemgerät (nicht Unity) ist, sollte es auch im Build klappen. Ich hoffe ich verstehe es richtig (wenn nicht, korrigieren). Du hast ein paar Panel/Button-Objekte in der UI und "3DUIs" (3D-Objekte in der 3D-Welt, ständig sichtbar) die du anklicken willst. In der UI (2D) wirst du keine Probleme haben, bei den 3D-Objekten wirst du wohl über einen Ray testen müssen, was du da vor dir hast und dann das Ereignis auslösen (händisch). Soweit ich weiss, wird über irgendeine API-Funktion geprüft, ob sich die aktuelle Mausposition innerhalb eines bestimmten Bereiches befindet (Tectangle, ..), Rückgabe Ja/Nein (oder auch 0/1). Wenn es sich in Unity um einen Button/aktives Element handelt und man dort eine Function hinterlegt hat, wird diese ausgelöst, wenn die Maus darüber ist (Rectangle des Buttons). Bei deinem 3D-Object müsstest du ein "virtuelles" Rectangle erzeugen (mit den Bildschirmkoordinaten an denen dein Object aktuell sichtbar ist), und die API-Funktion aufrufen. Trotzdem müsste jedes dieser Objekte dann auf dieses Event reagieren müssen. Ich würde im 3D-Bereich immer ab der Mausposition einen RAY abschiessen und die Function dann "händisch" auslösen. Geht einfacher.
  15. TurTur

    Cursor Problem

    Irgendwie verstehe ich dein Problem nicht so ganz oder völlig falsch. Der Cursor ist eigentlich ein einzelnes Pixel (Hotspot) der bei der Cursordefinition angegeben wird (sich also irgendwo in verwendeten Icon befindet). Wenn du den Cursor auf Locked stellst wird dieser Punkt einfach in die Mitte des Bildschirms verschoben und bleibt da (Cursor sichtbar oder nicht). Alle aktiven Elemente die unter diesen Punkt geraten könnten ausgelöst werden. Deine UI-Elemente sind aber sicherlich am Rand des Bildschirms positioniert. Und da die UI (Sorry für den Vergleich) eigentlich eine bemalte Glasplatte ist, die direkt vor die Kamera geklemmt wird und sich mit der Kamera mitbewegt. Du wirst nur Punkte in der 3D-Welt erreichen können. Ich habe auch ein Fadenkreuz in der Mitte ( für die 3D-Welt, Cursor Locked, Hidden) und für die Nutzung der Oberflächenelemente schalte ich den einfach Cursor um (wird bei mir im Moment noch mit der CTRL-Taste aktiviert). if(StartStop) { Cursor.lockState = CursorLockMode.None; Cursor.visible = true; } else { Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; } Funktioniert bei mir hervorragend. Und mit Cursor.SetCursor(Icon[3], hotSpot, CursorMode.Auto); Kannst du auch noch den Cursor selber ändern.
×