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.
Desafio
FácilConduza a cobra com as setas ou WASD.
- Adicione
using UnityEngine.InputSystem;aSnake. - No início de
Update(), leiaKeyboard.current: para cima ou W definedirection = Vector3.forward, para baixo ou S defineVector3.back, para a esquerda ou A defineVector3.left, para a direita ou D defineVector3.right. - 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