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.
Défi
FacileFais avancer le Grunt le long du chemin, d’un point de passage à l’autre.
- Dans
Enemy, ajouteprivate int next = 1;(le Grunt commence au WP0). - Dans
Update, retourne lorsquenext >= waypoints.Length. - Déplace-toi vers
waypoints[next].positionavecVector3.MoveTowardsà la vitessespeed * Time.deltaTime; lorsqu’il arrive, exécutenext++.
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
1Le parcours
Points de passageDonnées des ennemisEntraînez-vous par vous-même : Playground Unity