Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Sprintzustand | Feindverhalten
Kampfspiel in Unity
course content

Kursinhalt

Kampfspiel in Unity

Kampfspiel in Unity

1. Unity-Animationssystem
2. Spielerverhalten
3. Feindverhalten
4. Spiel Verbessern
5. Verbessere das Flappy Bird Spiel

book
Sprintzustand

Animator Controller

Zweck des AnimatorControllers

Die AnimatorController-Klasse ist dafür konzipiert, das Verhalten des Feindes durch Animator-Ereignisse zu verwalten und auszulösen. Dies ermöglicht eine nahtlose Integration von Animationstransitionen und Zustandsänderungen, wodurch sichergestellt wird, dass das Verhalten des Feindes mit seinen Animationen übereinstimmt.

Klassendefinition und Mitgliedsvariable

Klassendefinition: public class AnimatorController : MonoBehaviour definiert eine Klasse, die von MonoBehaviour erbt, sodass sie an ein GameObject in Unity angehängt werden kann.

Mitgliedsvariable: [SerializeField] Enemy enemy; ist ein serialisiertes Feld, das es ermöglicht, ein Enemy-Objekt direkt aus dem Unity-Inspektor mit dem AnimatorController zu verknüpfen. Die enemy-Variable ist eine Referenz auf das Feindskript, das Funktionen enthält, die das Verhalten des Feindes steuern.

Methoden

FinishMovement Methode: public void FinishMovement(): Diese Methode ruft enemy.FinishMovement() auf. Sie ist dafür vorgesehen, von einem Animator-Ereignis aufgerufen zu werden, das das Ende einer Bewegungsanimation signalisiert.

EndCurrentState Methode: public void EndCurrentState(): Diese Methode ruft enemy.EndCurrentState() auf. Sie soll von einem Animator-Ereignis aufgerufen werden, um das Ende des aktuellen Zustands zu signalisieren.

Integration mit Animator-Ereignissen

Animator-Ereignisse: Animator-Ereignisse sind spezielle Ereignisse, die auf Animationszeitleisten innerhalb von Unitys Animator platziert werden können. Diese Ereignisse können Funktionen in Skripten aufrufen, die an dasselbe GameObject oder dessen Kinder angehängt sind.

Wie es funktioniert: Während einer Animation, wie z.B. einer Lauf- oder Angriffsanimation, können bestimmte Punkte in der Zeitleiste Ereignisse auslösen.

Dash-Zustand

Erklärung der DashState-Klasse

Die DashState-Klasse ist ein spezifischer Zustand, der das Dash-Verhalten des Feindes steuert. Diese Klasse erbt von der State-Klasse und enthält Methoden, um den Dash-Zustand zu starten, zu aktualisieren und zu beenden sowie das Beenden der Bewegung zu handhaben.

Konstruktor

Der Konstruktor initialisiert den DashState mit den notwendigen Komponenten: einem Rigidbody2D für die Bewegung, einem Animator, einem Transform für den Spieler und einer Dash-Geschwindigkeit. Er setzt die anfängliche Skalierung und initialisiert den Geschwindigkeitsvektor.

StartState Methode

Diese Methode setzt isStateFinished auf false und löst die Dash-Animation aus, indem der "dash"-boolesche Parameter im Animator auf true gesetzt wird. Sie setzt auch das stopDashing-Flag auf false zurück.

FinishMovement Methode

Diese Methode setzt stopDashing auf true, was die Dash-Aktion in der UpdateState-Methode stoppt.

UpdateState Methode

Diese Methode aktualisiert die Position und Ausrichtung des Feindes basierend auf der Position des Spielers. Wenn stopDashing true ist, kehrt die Methode frühzeitig zurück und stoppt weitere Aktualisierungen. Sie passt die Skalierung des Feindes an, um dem Spieler zugewandt zu sein, berechnet die Geschwindigkeit basierend auf der Geschwindigkeit und wendet diese Geschwindigkeit auf das Rigidbody2D an.

EndState-Methode

Diese Methode stoppt die Dash-Animation, indem der "dash"-boolesche Parameter im Animator auf false gesetzt wird.

Warum wir es so gemacht haben

Das stopDashing-Flag ermöglicht eine präzise Kontrolle darüber, wann der Dash stoppen soll, was das Verhalten reaktionsfähiger auf Spielereignisse macht. Durch die kontinuierliche Aktualisierung der Position und Richtung des Feindes stellt der DashState sicher, dass der Feind schnell und genau auf den Spieler zudashen kann. Die Verwendung von Animator-Parametern stellt sicher, dass die Animationen des Feindes korrekt mit seinen Bewegungen synchronisiert sind, was ein flüssiges und realistisches Erlebnis bietet.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 6
We're sorry to hear that something went wrong. What happened?
some-alt