Menu
CoddyTech

Points de passage

Leçon 1 sur 25 du cours Jeu Unity : défense de tours de Coddy.

Dans ce cours, tu construis un jeu de tower defense : des ennemis avancent par vagues sur un chemin en direction de ta base, et les tours que tu construis à côté du chemin les arrêtent. Chaque leçon ajoute une fonctionnalité. Appuie sur « Jouer » pour essayer et sur « Vérifier » pour évaluer ton code. Les douze scripts sont dans le projet dès le début ; la plupart sont de courts modèles que les leçons suivantes complètent, et EnemyData est fourni pour la leçon 2.

Le chemin comporte huit points de passage, de WP0 au point d’apparition à WP7 à la base, dans le tableau waypoints du Grunt. Le Grunt conserve l’indice du point vers lequel il se dirige et avance vers celui-ci. Vector3.MoveTowards ne dépasse jamais sa cible, le Grunt arrive donc exactement au point de passage et == permet de savoir s’il y est arrivé :

Vector3 target = waypoints[3].position;
transform.position = Vector3.MoveTowards(transform.position, target, 5f * Time.deltaTime);
if (transform.position == target)
{
    // arrivé : se diriger vers le point suivant
}

Après le dernier point de passage, l’indice est égal à waypoints.Length, et accéder au tableau à cet emplacement déclenche une erreur ; vérifie donc l’indice avant de l’utiliser.

challenge icon

Défi

Facile

Fais avancer le Grunt le long du chemin, d’un point de passage à l’autre.

  1. Dans Enemy, ajoute private int next = 1; (le Grunt commence au WP0).
  2. Dans Update, retourne lorsque next >= waypoints.Length.
  3. Déplace-toi vers waypoints[next].position avec Vector3.MoveTowards à la vitesse speed * Time.deltaTime ; lorsqu’il arrive, exécute next++.

Appuie sur « Jouer » : le Grunt passe par chaque virage et s’arrête à la base. Puis appuie sur « Vérifier ».

Essayez vous-même

using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float speed = 2f;
    public Transform[] waypoints;

    void Update()
    {
        // Parcours le chemin ici : d’un point de passage au suivant, dans l’ordre.
    }
}

Toutes les leçons de Jeu Unity : défense de tours

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