Menu
CoddyTech

Rückblick: Doppelsprung

Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 43 von 60.

In diesem Kapitel wurde ein CharacterController von Hand bewegt: Move fürs Gehen, die in einem Feld gespeicherte Schwerkraft und Sprünge, die aus ihrer Höhe berechnet wurden. Die Spielfigur bekommt einen zusätzlichen Sprung in der Luft.

challenge icon

Aufgabe

Mittel

Gib dem Helden einen Sprung und einen Luftsprung. Die Laufbewegung ist bereits geschrieben.

  1. Zuerst, wenn der Held am Boden ist: airJumpUsed = false, und eine fallende verticalSpeed wird zu -2f.
  2. Bei Input.GetButtonDown("Jump"): wenn der Held am Boden ist, verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; else, wenn !airJumpUsed, dasselbe mit airJumpHeight und setze airJumpUsed.
  3. Addiere dann gravity * Time.deltaTime zu verticalSpeed.

Drücke „Spielen“ und führe einen Doppelsprung auf den Vorsprung aus. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;

public class Hero : MonoBehaviour
{
    public float speed = 5f;
    public float gravity = -25f;
    public float jumpHeight = 2f;
    public float airJumpHeight = 1.28f;

    CharacterController controller;
    float verticalSpeed;
    bool airJumpUsed;

    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // Am Boden zurücksetzen, mit Space springen oder einen Luftsprung ausführen, dann die Schwerkraft hinzufügen

        Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")) * speed;
        move.y = verticalSpeed;
        controller.Move(move * Time.deltaTime);
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Echte Spiele entwickeln

Übe selbstständig: Unity-Playground