Contenu du cours
Jeu de Combat dans Unity
Jeu de Combat dans Unity
Expliquer le Code
Code du Joueur
Initialisation dans la méthode Start
private void Start()
{
startPosition = transform.position;
}
But : Enregistre la position initiale du joueur au démarrage du jeu.
Réinitialisation de la position du joueur
public void RestartPlayerPosition()
{
transform.position = startPosition;
rb.velocity = Vector2.zero;
}
But : Réinitialise la position du joueur à la position de départ et arrête tout mouvement en mettant la vélocité à zéro.
Gestion des entrées du joueur dans la méthode Update
private void Update()
{
Vector2 oldVelocity = rb.velocity;
if (Input.GetKeyDown(KeyCode.Space))
{
oldVelocity.y = 6;
}
oldVelocity.x = 4;
rb.velocity = oldVelocity;
}
But : Capture l'entrée du joueur (touche espace) pour faire "sauter" le joueur en définissant la vélocité y à 6, tout en déplaçant constamment le joueur vers la droite en fixant la vélocité x à 4.
Gestion des collisions
OnCollisionEnter2D
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.collider.tag == "ground")
{
RestartPlayerPosition();
}
}
But : Réinitialise la position du joueur lors d'une collision avec des objets ayant le tag "ground".
OnTriggerEnter2D
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "win")
{
winPanel.SetActive(true);
SoundManager.instance.PlayEffect(1);
}
}
But : Active le panneau de victoire et joue un effet sonore lorsque le joueur entre en collision avec des objets ayant le tag "win".
Résumé
- Déplacement : Le joueur se déplace continuellement vers la droite et saute lorsque la touche espace est pressée ;
- Réinitialisation : La position du joueur est réinitialisée en cas de collision avec le sol ;
- Victoire : Affiche un panneau de victoire et joue un son lors de l'atteinte du déclencheur de victoire.
Classe SoundManager
Méthode Start
private void Start()
{
if (instance == null)
{
instance = this;
}
else
{
Destroy(gameObject);
return;
}
DontDestroyOnLoad(gameObject);
}
But :
Garantit qu'il n'existe qu'une seule instance de SoundManager
dans le jeu en utilisant le modèle Singleton. Utilise DontDestroyOnLoad(gameObject)
pour assurer la persistance entre différentes scènes.
Méthode PlayEffect
public void PlayEffect(int index)
{
if (index >= 0 && index < effects.Count)
{
source.PlayOneShot(effects[index]);
}
}
But :
Prend un entier index
pour identifier quel effet sonore jouer à partir de la liste effects
. Vérifie si l'index
est dans la plage valide de la liste effects
et joue l'effet sonore spécifié en utilisant source.PlayOneShot(effects[index])
.
Résumé
- Patron Singleton : Garantit qu'une seule instance de
SoundManager
existe dans le jeu, persistant à travers les scènes ; - Lecture des effets sonores : Utilise la méthode
PlayEffect
pour jouer des effets sonores en spécifiant leur index dans la listeeffects
; - Source audio : Utilise un composant
AudioSource
pour lire les clips audio.
Classe WinPanel
La classe WinPanel
fournit les fonctionnalités pour le panneau d'interface utilisateur qui apparaît lorsque le joueur gagne. Elle inclut des méthodes pour retourner au menu principal ou redémarrer le niveau, chacune jouant un effet sonore et chargeant la scène appropriée.
Méthodes
Méthode ReturnToMainMenu
public void ReturnToMainMenu()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene(0);
}
But :
Joue un effet sonore (index 0) avec SoundManager.instance.PlayEffect(0)
. Charge la scène du menu principal avec l’index de build 0 en utilisant SceneManager.LoadScene(0)
.
Méthode RestartLevel
public void RestartLevel()
{
SoundManager.instance.PlayEffect(0);
SceneManager.LoadScene("Game");
}
But :
Joue un effet sonore (index 0) avec SoundManager.instance.PlayEffect(0)
. Charge la scène de jeu nommée "Game" en utilisant SceneManager.LoadScene("Game")
.
Merci pour vos commentaires !