Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Partikel Hinzufügen | Spiel Verbessern
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
Partikel Hinzufügen

Erklärung der Änderungen an der Update-Methode

Die Update-Methode im Feindskript enthält jetzt Logik, um den Zustandsmanager zu aktualisieren, sicherzustellen, dass der Feind dem Spieler zugewandt ist, und einen speziellen Fall zu behandeln, in dem sich der Feind in einem DeathState befindet. Diese Logik wurde hinzugefügt, um zu verhindern, dass der Feind dem Spieler weiterhin zugewandt bleibt, nachdem er gestorben ist.

Methodenkomponenten

StateManager Update

stateManager.UpdateStates(Time.deltaTime)

Diese Zeile aktualisiert den State Manager und übergibt die seit dem letzten Frame vergangene Zeit (Time.deltaTime). Sie stellt sicher, dass der aktuelle Zustand in jedem Frame korrekt aktualisiert wird.

DeathState Überprüfung

if (stateManager.GetCurrentState() is DeathState) return;

Diese Zeile überprüft, ob der aktuelle Zustand DeathState ist. Wenn der Feind im DeathState ist, kehrt die Methode frühzeitig zurück und verhindert weitere Aktualisierungen für das Ausrichten zum Spieler oder andere Verhaltensweisen.

Ausrichtung zum Spieler

Die folgenden Zeilen stellen sicher, dass der Feind immer zum Spieler ausgerichtet ist:

scale.x = transform.position.x > player.position.x ? -1 : 1;

Diese Zeile überprüft, ob die x-Position des Feindes größer ist als die x-Position des Spielers:

  • Wenn wahr, wird scale.x auf -1 gesetzt, wodurch der Feind nach links schaut;
  • Wenn falsch, wird scale.x auf 1 gesetzt, wodurch der Feind nach rechts schaut.

transform.localScale = scale;

Diese Zeile wendet den aktualisierten Maßstab auf die Transformation des Feindes an und stellt sicher, dass er in die richtige Richtung schaut.

Warum wir es so gemacht haben

Umgang mit dem DeathState

Das Hinzufügen der Überprüfung für DeathState stellt sicher, dass der Feind sein Verhalten oder seine Ausrichtung nicht weiter aktualisiert, nachdem er gestorben ist. Dies ist entscheidend für die Aufrechterhaltung der Spiellogik und verhindert unerwartete Verhaltensweisen, nachdem der Feind inaktiv sein sollte.

Zentralisierte Logik

Indem wir die Spieler-Ausrichtungslogik in die Update-Methode verschieben, zentralisieren wir dieses Verhalten, reduzieren Redundanz und verbessern die Wartbarkeit des Codes. Es stellt sicher, dass der Feind immer zum Spieler schaut, unabhängig vom aktuellen Zustand, was den zustandsspezifischen Code vereinfacht.

Erklärung der Handhabung des Feindtodes

Die DeathState-Klasse ist ein spezifischer Zustand, der das Verhalten des Feindes beim Sterben behandelt.

Warum wir es so gemacht haben

Umgang mit Todesverhalten

Die DeathState-Klasse verwaltet speziell das Verhalten des Feindes beim Sterben und stellt sicher, dass die Todesanimation abgespielt wird und der Zustand als abgeschlossen markiert wird.

Animationseinbindung

Durch die Verwendung von Animator-Parametern wird sichergestellt, dass die Todesanimation korrekt mit dem Zustandswechsel synchronisiert wird, was ein flüssiges und realistisches Erlebnis bietet.

Partikelspawning beim Tod des Feindes

Dieser Code zeigt, wie der Feind seinen Tod handhabt, wenn seine Gesundheit auf null sinkt. Er wechselt in den DeathState und spielt einen Todespartikeleffekt ab.

Code-Aufschlüsselung

Gesundheitsprüfung

if (health <= 0)

Diese Bedingung überprüft, ob die Gesundheit des Feindes auf null oder darunter gesunken ist.

Übergang zum DeathState

stateManager.ChangeState(deathState)

Diese Zeile wechselt den Feind in den DeathState mit dem StateManager.

Todespartikel instanziieren

var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity)

Diese Zeile erstellt eine Instanz des Todespartikeleffekts an der Position des Feindes. deathParticles ist ein Prefab, das das Partikelsystem für den Todes-Effekt enthält. Quaternion.identity stellt sicher, dass die Partikel keine Rotation haben.

Todespartikel abspielen

deathParticle.Play()

Diese Zeile spielt den instanziierten Partikeleffekt ab.

Todespartikel zerstören

Destroy(deathParticle.gameObject, 5)

Diese Zeile plant die Zerstörung des Partikeleffekt-GameObject nach 5 Sekunden, um sicherzustellen, dass es nicht unbegrenzt im Spiel bleibt.

Warum wir es so gemacht haben

Zustandsverwaltung: Der Übergang zum DeathState stellt sicher, dass das Todesverhalten des Feindes ordnungsgemäß verwaltet wird und dass jegliche spezifische Logik für den Todeszustand ausgeführt wird.

Visuelle Effekte: Das Abspielen eines Todespartikeleffekts bietet visuelles Feedback für den Spieler und verbessert das Spielerlebnis.

Was passiert mit dem Partikelsystem, wenn die Gesundheit kleiner oder gleich null ist?

Was passiert mit dem Partikelsystem, wenn die Gesundheit kleiner oder gleich null ist?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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