Menu
CoddyTech

Repaso: doble salto

Parte de la sección Creación de juegos reales del Journey de Unity de Coddy. Lección 43 de 60.

En este capítulo, se movió un CharacterController a mano: Move para caminar, la gravedad almacenada en un campo y los saltos calculados a partir de su altura. El héroe añade un salto más en el aire.

challenge icon

Desafío

Intermedio

Haz que el héroe salte y dé un salto en el aire. El movimiento ya está escrito.

  1. Primero, mientras esté en el suelo: airJumpUsed = false, y una verticalSpeed negativa pasa a ser -2f.
  2. Al pulsar Input.GetButtonDown("Jump"): si está en el suelo, verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; de lo contrario, si !airJumpUsed, lo mismo con airJumpHeight, y establece airJumpUsed.
  3. Después, suma gravity * Time.deltaTime a verticalSpeed.

Pulsa «Jugar» y haz un doble salto hasta la cornisa. Después, pulsa «Comprobar».

Pruébalo tú mismo

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()
    {
        // Restablece el estado al tocar el suelo, salta o haz un salto en el aire con Space y luego aplica la gravedad

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

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Creación de juegos reales

Practica por tu cuenta: Playground de Unity