Contenu du cours
Jeu de Combat dans Unity
Jeu de Combat dans Unity
É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.
Merci pour vos commentaires !