Menu
CoddyTech

Controle a direção

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

A cobra vira usando 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. O pressionamento só altera direction; Step() ainda move a cabeça, no próximo tick:

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

Uma seta e sua letra são duas teclas, unidas com ||. Keyboard.current é null em um dispositivo sem teclado, então verifique-o uma vez no início.

challenge icon

Desafio

Fácil

Conduza a cobra com as setas ou WASD.

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

Pressione “Jogar”, clique no jogo e conduza a cobra: a cabeça vira no próximo passo. Depois, “Verificar”.

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;
    }
}

Todas as lições de Jogo 3D da Cobrinha na Unity

Pratique por conta própria: Playground de Unity