Menu
CoddyTech

Controle a direção

Lição 2 de 14 do curso Jogo de Cobra 3D na Unity da Coddy.

A cobra vira com as teclas de seta ou WASD. A câmera olha para o tabuleiro a partir da borda frontal, então para cima na tela é ao longo de +z, Vector3.forward, e para baixo é Vector3.back. Vector3.up aponta para o céu: uma cabeça movida por ele sairia do tabuleiro.

Uma virada acontece uma vez por pressionamento, então leia as teclas com wasPressedThisFrame do Input System. O pressionamento só altera direction. Step() ainda move a cabeça, no próximo tick, para que a cobra mantenha seu ritmo. Um veículo explorador que segue para a direita da tela quando D é pressionada:

Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
    heading = Vector3.right;
}

O Input System não tem eixos no teclado: uma seta e sua letra são duas teclas, unidas por ||. Keyboard.current é null em um dispositivo sem teclado, então leia-o uma vez no início e verifique-o.

challenge icon

Desafio

Fácil
  1. Adicione using UnityEngine.InputSystem; a Snake.
  2. No início de Update(), leia Keyboard.current. Pressionar a seta para cima ou W define direction como Vector3.forward; a seta para baixo ou S, como Vector3.back; a seta para a esquerda ou A, como Vector3.left; a seta para a direita ou D, como Vector3.right.
  3. Deixe Step() como está: a cabeça vira no próximo tick.

Pressione Play, clique no jogo e controle a direção; em seguida, pressione Check.

Experimente você mesmo

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // segundos entre dois passos
    private float timer;
    private Vector3 direction = Vector3.right;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= tick)
        {
            timer -= tick;
            Step();
        }
    }

    void Step()
    {
        transform.position += direction;
    }
}
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 Jogo de Cobra 3D na Unity