Menu
CoddyTech

Recapitulação: pulo duplo

Parte da seção Criando Jogos de Verdade do Journey de Unity da Coddy. Lição 43 de 60.

Neste capítulo, movemos um CharacterController manualmente: usamos Move para caminhar, mantivemos a gravidade em um campo e calculamos os saltos com base na altura. O herói ganha mais um salto no ar.

challenge icon

Desafio

Médio

Dê um salto e um salto no ar ao herói. A caminhada já está escrita.

  1. Primeiro, enquanto estiver no chão: airJumpUsed = false, e um verticalSpeed descendente passa a ser -2f.
  2. Ao pressionar Input.GetButtonDown("Jump"): no chão, verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; caso contrário, se !airJumpUsed, faça o mesmo com airJumpHeight e defina airJumpUsed.
  3. Depois, some gravity * Time.deltaTime a verticalSpeed.

Pressione “Jogar” e dê um salto duplo até a plataforma. Depois, clique em “Verificar”.

Experimente você mesmo

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()
    {
        // Redefina ao tocar o chão, pule ou dê um salto no ar ao pressionar Space e, em seguida, aplique a gravidade

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

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Criando Jogos de Verdade

Pratique por conta própria: Playground de Unity