Sterzare
Lezione 2 di 14 del corso Gioco Unity: Snake 3D di Coddy.
Il serpente gira con i tasti freccia o WASD. La telecamera inquadra la plancia dal bordo anteriore, quindi verso l’alto sullo schermo è lungo +z, Vector3.forward, e verso il basso è Vector3.back. Vector3.up punta verso il cielo: se la testa si muovesse in quella direzione, si solleverebbe dalla plancia.
La svolta avviene una volta per pressione, quindi leggi i tasti con wasPressedThisFrame. La pressione cambia solo direction; Step() sposta comunque la testa, al tick successivo:
Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
direction = Vector3.right;
}Una freccia e la lettera corrispondente sono due tasti, uniti con ||. Keyboard.current è null su un dispositivo senza tastiera, quindi controllalo una volta all’inizio.
Sfida
FacileGuida il serpente con le frecce o WASD.
- Aggiungi
using UnityEngine.InputSystem;aSnake. - All’inizio di
Update(), leggiKeyboard.current: su o W impostadirection = Vector3.forward, giù o SVector3.back, sinistra o AVector3.left, destra o DVector3.right. - Lascia
Step()così com’è: la testa gira al tick successivo.
Premi «Gioca», fai clic sul gioco e guida il serpente: la testa gira al passo successivo. Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // secondi tra due passi
private float timer;
private Vector3 direction = Vector3.right;
void Update()
{
timer += Time.deltaTime;
if (timer >= tick)
{
timer -= tick;
Step();
}
}
void Step()
{
transform.position += direction;
}
}
Tutte le lezioni di Gioco Unity: Snake 3D
Esercitati da solo: Playground Unity