Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Spieleranimation Abschließen | Unity-Animationssystem
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
Spieleranimation Abschließen

Sprunganimation

Für den Sprung werden wir zwei Animationen haben: Da der Spieler springen und dann fallen wird, müssen wir dafür zwei Animationen erstellen. Der Übergang zwischen ihnen basiert auf der "y-Geschwindigkeit" des Spielers; wenn y positiv ist, springt er, und wenn y negativ ist, fällt er. Wir können die y-Geschwindigkeit aus der Rigidbody2D-Komponente erhalten, die am Spieler angebracht ist.

Dieser Code weist den Wert für den Übergangsparameter zwischen dem Sprung und dem Fall zu.

Code-Erklärung

Diese Zeile überprüft, ob die Leertaste gedrückt wird (Input.GetKeyDown(KeyCode.Space)), der Spieler am Boden ist (isGrounded) und der Spieler nicht gerade angreift (animator.GetBool("isAttacking") == false). Wenn alle Bedingungen erfüllt sind, wird der folgende Codeblock ausgeführt.

Diese Zeile fügt der Rigidbody-Komponente (rb), die dem Spieler zugeordnet ist, eine Aufwärtskraft hinzu, um einen Sprung zu simulieren. Die angewandte Kraft ist in der Aufwärtsrichtung (Vector2.up) mit der durch jumpForce definierten Größe und wird impulsiv angewendet (ForceMode2D.Impulse).

Diese Zeile setzt einen booleschen Parameter "isJumping" im Animator-Komponente auf true, wodurch die Sprunganimation ausgelöst wird.

Diese Zeile überprüft, ob der Spieler derzeit springt (animator.GetBool("isJumping") == true), die vertikale Geschwindigkeit des Spielers negativ ist (rb.velocity.y < 0) und der Spieler auf dem Boden ist (isGrounded). Wenn alle Bedingungen erfüllt sind, wird der folgende Codeblock ausgeführt.

Diese Zeile setzt den booleschen Parameter "isJumping" im Animator-Komponente auf false, was anzeigt, dass der Spieler das Springen und Fallen beendet hat und seine Animation zu Idle wechselt.

Diese Zeile wirft einen Strahl von der Position der Füße des Spielers (playerFeet.position) nach unten, um zu erkennen, ob der Spieler auf dem Boden steht. Sie gibt true zurück, wenn der Strahl innerhalb einer Entfernung von 0,1 Einheiten mit einem Collider in der Bodenschicht kollidiert und aktualisiert entsprechend die Variable (isGrounded).

Was stellt ein `raycast` in Unity dar?

Was stellt ein raycast in Unity dar?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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