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.
Desafio
Fácil- Adicione
using UnityEngine.InputSystem;aSnake. - No início de
Update(), leiaKeyboard.current. Pressionar a seta para cima ou W definedirectioncomoVector3.forward; a seta para baixo ou S, comoVector3.back; a seta para a esquerda ou A, comoVector3.left; a seta para a direita ou D, comoVector3.right. - 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;
}
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.