Menu
CoddyTech

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.

challenge icon

Sfida

Facile
  1. Aggiungi using UnityEngine.InputSystem; a Snake.
  2. All’inizio di Update(), leggi Keyboard.current. Premendo la freccia su o W, imposta direction su Vector3.forward; la freccia giù o S su Vector3.back; la freccia sinistra o A su Vector3.left; la freccia destra o D su Vector3.right.
  3. 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;
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Gioco in Unity: Snake 3D