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 le bord avant, donc 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. La pression ne fait que modifier direction ; Step() déplace toujours la tête au prochain tick :

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

Une flèche et sa lettre sont deux touches, reliées par ||. Keyboard.current vaut null sur un appareil sans clavier : vérifie-le donc une seule fois au début.

challenge icon

Défi

Facile

Dirige le serpent avec les flèches ou WASD.

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

Appuie sur « Jouer », clique sur le jeu et dirige le serpent : la tête tourne au prochain pas. Puis clique sur « Vérifier ».

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;
    }
}

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

Entraînez-vous par vous-même : Playground Unity