Jump to content
Unity Insider Forum

Animation Control


UnityFuchs

Recommended Posts

Hallo ihr Kreativen,

ich baue gerade einen ShootEmUp-Spaceshooter und bin schon ewig am grübeln wie ich die Bewegung der Enemies umsetze. Ich teste gerade aus, ob man das mit Animationen hinbekommt, da man dort mehr Kontrolle über die Objekte hat. (Transform, Scale, Rotation)

Ich habe schon einiges ausgetestet, was leider nie richtig funktionierte und ich habe das Gefühl, dass ich ständig gegen eine Wand laufe.

Problem: Das Video im Anhang zeigt mein aktuelles Problem. (ich hoffe man erkennt alles.)

  • Ich habe 3 Animationen erstellt mit einer Länge von je einer Sekunde.
  • Lögischer Weise werden die Animationen in einer Sekunde abgespielt, egal wie lang der zurückgelegte Weg ist.
  • Ich kann natürlich über die AnimationsSpeed die Geschwindigkeit für jede Animation anpassen, aber das ist nicht wirklich funktionabel und auch nicht genau.

Frage: Gibt es eine Möglichkeit die AnimationSpeed anhand der Länge einer Strecke anzupassen? Wahrscheinlich nicht. Fällt Jemanden eine gute Lösung ein, wie ich meine Schiffe über eine Animation bewegen kann? Geht das vielleicht mit einem anderen Animationsprogramm? Wer kann mir da weiterhelfen?

Vielen Dank im Vorraus und liebe Grüße ..

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube, hier liegt ein grundlegendes Missverständnis vor. In deinem Video sehe ich, dass Dinge sich von oben nach unten in einer geraden Linie bewegen, sonst passiert nichts. Das ist exakt eine Zeile Code, mit festem Start- und Zielpunkt macht das etwa drei, plus Klammern.

Ein Script für eine einzelne Aufgabe, z.B. "von oben nach unten bewegen" schreibst du genau ein Mal. Und dann benutzt du das für alle deine Objekte. Du kannst ja dasselbe Script auf beliebig viele Objekte ziehen. Und wenn die Objekte alle etwas unterschiedlich sind (z.B. unterschiedliche Geschwindigkeit), dann baust du ein Feld in dein Script ein, mit dem du das einstellen kannst. Es gibt nirgendwo mehr Kontrolle als beim Scripten. Für Animationen gibt es natürlich sehr wohl einen Haufen hervorragender Anwengunszwecke - ich würde sagen, das hier ist keiner davon.

Link zu diesem Kommentar
Auf anderen Seiten teilen

lieber sascha, das video ist natürlich vereinfacht dargestellt, damit jeder beim ersten hingucken sofort merkt, was mein problem ist. das ist nur zum einfacheren verständnis.

natürlich sind meine animationen komplexer mit looping, rolle, kreisbewegung, enter_animation, leave_animation, etc.. wenn ich das jedoch zeigen würde, versteht keiner mein problem.

aber danke, dass du versuchst mir zu helfen, ist schon mal top. 👍

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb UnityFuchs:

looping, rolle, kreisbewegung,

Auch das sind nicht mehr wie ein paar Zeilen Code. Im Grunde ist es ein Looping nichts anderes wie eine Kreisbewegung, nur in einer anderen Achse. Und bei einer Rolle machst du auch nichts anderes, als dein GameObjekt zu bewegen.

Wie @Sascha schon schreibt, scheint mir für jede einzelne verschiedene Bewegung eine Animation zu aufwendig sein.

Beispiel 1: für eine engen Kreisbewegung benutzt du denselben Code wie für eine weite Kreisbewegung, nur mit einen anderen Wert einer Variable für die Drehung. Diesen Wert kannst du deinem Gegner beim Erstellen zuweisen. Somit hast du für zwei verschiedene Bewegungen denselben Code (ja, ich wiederhole mich). Bei einer Animation müsstest du aber für diese zwei Kreisbewegungen doch auch zwei Animationen erstellen.

Beispiel 2: du kannst einem roten runden Gegner dasselbe Beweggungsscript wie dem blauen eckigen Gegner geben. Somit nutzt du auch hier wieder denselben Code. Bei der Animation müsstest du doch wieder zwei Animationen erstellen (eventuell täusche ich mich hier aber).

Zu deinem Grundsatzproblem: durch die Nutzung von Code mit Variablen kannst du die Geschwindigkeit schnell im Inspektor einstellen und gleich testen.  Oder du schreibst deinen Code so, dass der Gegner in einer Zeit X die Distanz Y zurücklegt, was ja "der Länge einer Strecke" entsprechen würde.

Anmerkung: tu uns bitte den Gefallen und nutz gerne die Groß- und Kleinschreibung - das macht uns das Lesen einfacher. Danke.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...