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.
Défi
FacileDirige le serpent avec les flèches ou WASD.
- Ajoute
using UnityEngine.InputSystem;àSnake. - Au début de
Update(), lisKeyboard.current: haut ou W définitdirection = Vector3.forward, bas ou SVector3.back, gauche ou AVector3.left, droite ou DVector3.right. - 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