Menu
CoddyTech

Diriger

Leçon 2 sur 14 du cours Jeu Unity : Snake 3D de Coddy.

Le serpent tourne avec les touches fléchées ou WASD. La caméra regarde le plateau depuis son bord avant ; ainsi, le haut de l’écran correspond à +z, Vector3.forward, et le bas à Vector3.back. Vector3.up pointe vers le ciel : une tête déplacée dans cette direction s’élèverait au-dessus du plateau.

Un virage se produit une seule fois par pression ; lis donc les touches avec wasPressedThisFrame du système Input System. La pression ne fait que changer direction. Step() déplace toujours la tête au prochain tick, ainsi le serpent garde son rythme. Un rover qui se dirige vers la droite de l’écran quand on appuie sur D :

Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
    heading = Vector3.right;
}

Le système Input System n’a pas d’axes sur le clavier : une flèche et sa lettre sont deux touches, reliées par ||. Keyboard.current est null sur un appareil sans clavier ; lis-le donc une fois en haut et vérifie-le.

challenge icon

Défi

Facile
  1. Ajoute using UnityEngine.InputSystem; à Snake.
  2. Au début de Update(), lis Keyboard.current. Une pression sur la flèche vers le haut ou sur W définit direction sur Vector3.forward ; la flèche vers le bas ou S sur Vector3.back ; la flèche vers la gauche ou A sur Vector3.left ; la flèche vers la droite ou D sur Vector3.right.
  3. Laisse Step() tel quel : la tête tourne au prochain tick.

Appuie sur Play, clique sur le jeu et dirige le serpent, puis appuie sur Check.

Essayez vous-même

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // secondes entre deux déplacements
    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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Jeu Unity : Snake 3D