Menu
CoddyTech

Riepilogo: doppio salto

Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 43 di 60.

In questo capitolo hai mosso manualmente un CharacterController: Move per camminare, la gravità mantenuta in un campo e i salti calcolati in base alla loro altezza. L’eroe aggiunge un altro salto in aria.

challenge icon

Sfida

Medio

Fai saltare l'eroe e fagli fare un salto in aria. Il movimento è già scritto.

  1. Per prima cosa, quando è a terra: airJumpUsed = false e, se sta cadendo, verticalSpeed diventa -2f.
  2. Quando viene premuto Input.GetButtonDown("Jump"): se è a terra, verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; altrimenti, se !airJumpUsed, fai lo stesso usando airJumpHeight e imposta airJumpUsed.
  3. Poi aggiungi gravity * Time.deltaTime a verticalSpeed.

Premi «Gioca» e fai un doppio salto fino alla sporgenza. Poi premi «Verifica».

Provalo tu

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()
    {
        // Reimposta quando sei a terra, salta o esegui un salto in aria premendo Space, poi applica la gravità

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

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Creare veri giochi

Esercitati da solo: Playground Unity