Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Guida il serpente con le frecce o WASD.

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