Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre État de Ruée | Comportement de l'Ennemi
Jeu de Combat dans Unity
course content

Contenu du cours

Jeu de Combat dans Unity

Jeu de Combat dans Unity

1. Système d'Animation Unity
2. Comportement du Joueur
3. Comportement de l'Ennemi
4. Améliorer le Jeu
5. Améliorer le Jeu Flappy Bird

book
État de Ruée

Contrôleur d'Animateur

Objectif du AnimatorController

La classe AnimatorController est conçue pour gérer et déclencher les comportements de l'ennemi à travers des événements de l'animateur. Cela permet une intégration transparente des transitions d'animation et des changements d'état, garantissant que le comportement de l'ennemi correspond à ses animations.

Définition de la Classe et Variable Membre

Définition de la Classe : public class AnimatorController : MonoBehaviour définit une classe qui hérite de MonoBehaviour, lui permettant d'être attachée à un GameObject dans Unity.

Variable Membre : [SerializeField] Enemy enemy; est un champ sérialisé qui vous permet de lier un objet Enemy au AnimatorController directement depuis l'inspecteur Unity. La variable enemy est une référence au script de l'ennemi, qui contient des fonctions contrôlant le comportement de l'ennemi.

Méthodes

Méthode FinishMovement : public void FinishMovement(): Cette méthode appelle enemy.FinishMovement(). Elle est conçue pour être appelée par un événement de l'animateur, signalant la fin d'une animation de mouvement.

Méthode EndCurrentState : public void EndCurrentState(): Cette méthode appelle enemy.EndCurrentState(). Elle est destinée à être appelée par un événement de l'animateur pour signaler la fin de l'état actuel.

Intégration avec les Événements de l'Animateur

Événements de l'Animateur : Les événements de l'animateur sont des événements spéciaux qui peuvent être placés sur les lignes de temps d'animation dans l'Animator de Unity. Ces événements peuvent appeler des fonctions dans les scripts attachés au même GameObject ou à ses enfants.

Comment ça Marche : Pendant une animation, telle qu'une animation de course ou d'attaque, des points spécifiques dans la ligne de temps peuvent déclencher des événements.

État de Dash

Explication de la classe DashState

La classe DashState est un état spécifique qui gère le comportement de dash de l'ennemi. Cette classe hérite de la classe State et inclut des méthodes pour démarrer, mettre à jour et terminer l'état de dash, ainsi que pour gérer l'événement de fin de mouvement.

Constructeur

Le constructeur initialise le DashState avec les composants nécessaires : un Rigidbody2D pour le mouvement, un Animator, un Transform pour le joueur, et une vitesse de dash. Il définit l'échelle initiale et initialise le vecteur de vitesse.

Méthode StartState

Cette méthode définit isStateFinished sur false et déclenche l'animation de dash en réglant le paramètre booléen "dash" dans l'animateur sur true. Elle réinitialise également le drapeau stopDashing à false.

Méthode FinishMovement

Cette méthode définit stopDashing sur true, ce qui arrêtera l'action de dash dans la méthode UpdateState.

Méthode UpdateState

Cette méthode met à jour la position et l'orientation de l'ennemi en fonction de la position du joueur. Si stopDashing est true, la méthode retourne tôt, arrêtant les mises à jour ultérieures. Elle ajuste l'échelle de l'ennemi pour faire face au joueur, calcule la vélocité en fonction de la vitesse, et applique cette vélocité au Rigidbody2D.

Méthode EndState

Cette méthode arrête l'animation de dash en définissant le paramètre booléen "dash" dans l'animateur à false.

Pourquoi nous l'avons fait comme ça

Le drapeau stopDashing permet un contrôle précis sur le moment où le dash doit s'arrêter, rendant le comportement plus réactif aux événements du jeu. En mettant à jour continuellement la position et la direction de l'ennemi, le DashState garantit que l'ennemi peut rapidement et précisément se diriger vers le joueur. L'utilisation de paramètres d'animateur garantit que les animations de l'ennemi sont correctement synchronisées avec ses mouvements, offrant une expérience fluide et réaliste.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 6
We're sorry to hear that something went wrong. What happened?
some-alt