Sterza
Lezione 2 di 14 del corso Gioco in Unity: Snake 3D di Coddy.
Il serpente gira con i tasti freccia o WASD. La telecamera guarda la tavola dal bordo anteriore, quindi verso l’alto sullo schermo corrisponde a +z, Vector3.forward, e verso il basso a Vector3.back. Vector3.up punta verso il cielo: una testa spostata in quella direzione si solleverebbe dalla tavola.
Una svolta avviene una volta per pressione, quindi leggi i tasti con wasPressedThisFrame dell’Input System. La pressione cambia solo direction. Step() continua a muovere la testa al tick successivo, così il serpente mantiene il suo ritmo. Un rover che si dirige verso destra sullo schermo quando viene premuto D:
Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
heading = Vector3.right;
}L’Input System non ha assi sulla tastiera: una freccia e la sua lettera sono due tasti, collegati con ||. Keyboard.current è null su un dispositivo senza tastiera, quindi leggilo una volta all’inizio e controllalo.
Sfida
Facile- Aggiungi
using UnityEngine.InputSystem;aSnake. - All’inizio di
Update(), leggiKeyboard.current. Premendo la freccia su o W, impostadirectionsuVector3.forward; la freccia giù o S suVector3.back; la freccia sinistra o A suVector3.left; la freccia destra o D suVector3.right. - Lascia
Step()così com’è: la testa gira al tick successivo.
Premi Play, fai clic sul gioco e guidalo, poi premi Check.
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;
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.