Menu
CoddyTech

Récapitulatif : double saut

Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 43 sur 60.

Dans ce chapitre, tu as déplacé un CharacterController à la main : Move pour marcher, la gravité conservée dans un champ et les sauts calculés à partir de leur hauteur. Le héros peut effectuer un saut supplémentaire en l'air.

challenge icon

Défi

Moyen

Fais sauter le héros, puis fais-le effectuer un saut en l’air. La marche est déjà écrite.

  1. D’abord, lorsqu’il est au sol : airJumpUsed = false, et si verticalSpeed est négatif, il devient -2f.
  2. À l’appui sur Input.GetButtonDown("Jump") : s’il est au sol, verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity); ; sinon, si !airJumpUsed, fais la même chose avec airJumpHeight, puis définis airJumpUsed.
  3. Ajoute ensuite gravity * Time.deltaTime à verticalSpeed.

Appuie sur « Jouer » et effectue un double saut pour atteindre le rebord. Puis clique sur « Vérifier ».

Essayez vous-même

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()
    {
        // Réinitialiser au sol, sauter ou effectuer un saut aérien avec Space, puis appliquer la gravité

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

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Créer de vrais jeux

Entraînez-vous par vous-même : Playground Unity