Contenu du cours
Jeu de Combat dans Unity
Jeu de Combat dans Unity
Créer le Menu Principal
Menu Principal
Script pour le Menu Principal
La classe MainUI
est un script simple qui fournit des fonctionnalités pour démarrer le jeu et quitter l'application. Ce script est destiné à être utilisé avec des boutons UI dans Unity.
Définition de la classe et méthodes
La méthode StatTheGame
est conçue pour initier le jeu en chargeant une nouvelle scène. Plus précisément, SceneManager.LoadScene(1)
indique à Unity de charger la scène avec l'index de construction 1
, qui correspond à sa position dans les paramètres de construction.
La méthode Quit
permet de fermer l'application en appelant Application.Quit()
, bien que cette fonctionnalité ne soit efficace que dans une application construite et non dans l'éditeur Unity.
Utilisation dans Unity
Attacher le script
Créez un GameObject (par exemple, un GameObject vide ou un élément UI).
Attachez le script MainUI
au GameObject en faisant glisser le script dessus ou en utilisant le bouton Add Component
dans l'inspecteur.
Configuration des boutons UI
Créez un bouton UI (par exemple, GameObject > UI > Button
).
Sélectionnez le bouton et allez dans l'inspecteur.
Dans la section On Click ()
, cliquez sur le bouton +
pour ajouter un nouvel événement.
Faites glisser le GameObject avec le script MainUI
attaché dans le champ de l'objet.
Dans le menu déroulant, sélectionnez MainUI > functionName
.
Gestionnaire de jeu
Script pour le gestionnaire de jeu
La classe GameManager
est responsable de la gestion de l'état du jeu. Elle utilise un modèle singleton pour s'assurer qu'il n'y a qu'une seule instance de GameManager
dans le jeu, gère l'état du jeu et diffuse les changements d'état à l'aide d'événements.
Définition de la Classe et Variables Membres
Méthodes
Méthode Awake
Objectif: S'assure qu'il n'y a qu'une seule instance de GameManager
et empêche sa destruction lors du chargement de nouvelles scènes.
Modèle Singleton: Vérifie si une instance existe déjà. Si c'est le cas, elle détruit le doublon. Sinon, elle assigne l'instance et marque l'objet pour ne pas être détruit lors du chargement d'une nouvelle scène.
Méthode Start
But : Initialise l'état du jeu à Playing
lorsque le jeu commence et déclenche l'événement onGameStateChanges
.
Méthode FinishGame
But : Définit l'état du jeu à Finished
et déclenche l'événement onGameStateChanges
.
Enum GameStates
But : Définit les états possibles du jeu.
L'ennemi réagit aux changements d'état du jeu
Cette méthode gère les changements d'état du jeu. Lorsque l'état du jeu passe à Finished
, l'état de l'ennemi est changé en idle
.
Panneau de Fin
Script pour le Panneau de Fin
La classe FinishPanel
gère l'affichage et la fonctionnalité du panneau de fin qui apparaît lorsque le jeu se termine. Ce panneau fournit un retour d'information au joueur sur le fait qu'il a gagné ou perdu et offre des options pour revenir au menu principal ou quitter le jeu.
Explication
Méthodes
Méthode Start
But: S'abonne à l'événement GameManager.onGameStateChanges
pour écouter les changements d'état du jeu.
Méthode GameManager_onGameStateChanges
But: Gère les changements d'état du jeu. Lorsque l'état du jeu est Finished
, il active le panneau de fin et appelle OnGameFinished
.
Méthode OnGameFinished
But : Met à jour le texte du panneau de fin en fonction de si le joueur est mort ou vivant.
Logique : Si le joueur est mort, la méthode définit le texte sur "Vous avez perdu" en rouge. Si le joueur est vivant, elle définit le texte sur "Vous avez gagné" en vert.
Méthode BackToMainMenu
But : Charge la scène du menu principal (index de construction 0) lorsqu'elle est appelée. Cette méthode est destinée à être liée à un bouton dans l'interface utilisateur.
Méthode Quit
But : Quitte l'application lorsqu'elle est appelée. Cette méthode est destinée à être liée à un bouton dans l'interface utilisateur.
Résumé
La classe FinishPanel
affiche les résultats de fin de partie et propose des options pour revenir au menu principal ou quitter. Elle s'abonne à GameManager.onGameStateChanges
pour se mettre à jour de manière appropriée lorsque le jeu se termine, améliorant ainsi l'expérience utilisateur avec des retours clairs et des options intuitives.
1. Que se passe-t-il lorsque la méthode FinishGame
est appelée dans la classe GameManager
?
2. Que se passe-t-il lorsque le GameManager
change l'état du jeu en GameStates.Finished
?
Merci pour vos commentaires !