Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Gestionnaire de Son | Interface Utilisateur Unity et Sons
Unity pour Débutants
course content

Contenu du cours

Unity pour Débutants

Unity pour Débutants

1. Introduction à Unity
2. Écrivez Votre Premier Script
3. Physique Unity
4. Interface Utilisateur Unity et Sons
5. Polishing and Export Your Game

book
Gestionnaire de Son

Comprendre le Singleton dans Unity

Dans Unity, un Singleton est un modèle de conception qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à celle-ci. Cela est particulièrement utile pour gérer les composants de jeu qui doivent persister à travers différentes scènes, comme un SoundManager.

Comment fonctionne le Singleton dans Unity

  1. Instance unique : la classe SoundManager déclare une variable statique publique instance de son propre type. Cette variable contient l'unique instance de la classe SoundManager;

  2. Initialisation dans la méthode Start() : lorsque le GameObject avec ce script devient actif, Unity appelle automatiquement la méthode Start(). Ici, l'instance Singleton est initialisée :

    • Si instance est null, cela signifie qu'aucun SoundManager n'existe encore, donc l'instance actuelle (this) est assignée à instance, en faisant le Singleton;
    • Si instance n'est pas null, un autre SoundManager existe déjà, ce qui ne devrait pas se produire dans un modèle Singleton. Dans ce cas, le GameObject actuel est détruit en utilisant Destroy(gameObject) pour maintenir le modèle Singleton.
  3. Persistance à travers les scènes : la méthode DontDestroyOnLoad(gameObject) est utilisée pour s'assurer que le GameObject (et donc l'instance SoundManager) persiste entre les changements de scène. Cela est crucial pour maintenir un comportement audio cohérent à travers différentes scènes.

Accéder à l'instance Singleton

Une fois configuré, d'autres scripts peuvent facilement accéder aux fonctionnalités du SoundManager dans tout le jeu en utilisant SoundManager.instance. Par exemple, pour jouer un effet audio, un autre script peut appeler SoundManager.instance.PlayEffect(index). Cela permet à n'importe quel script du jeu d'interagir avec le SoundManager sans créer plusieurs instances ou se soucier de l'initialisation.

Avantages de l'utilisation du Singleton

  • Gestion centralisée : fournit un point central pour gérer les fonctionnalités liées au son, facilitant le contrôle et la maintenance de la lecture audio dans tout le jeu;

  • Accès global : l'instance Singleton peut être accédée globalement depuis n'importe quel script, permettant aux différentes parties du jeu d'interagir avec le système sonore de manière transparente;

  • Persistance : assure une lecture audio cohérente tout au long du jeu sans interruption lors des changements de scène.

  • Instance statique : public static SoundManager instance; déclare une variable statique qui contiendra l'unique instance de la classe SoundManager;

  • Méthode Start : la méthode Start() est appelée lorsque le script devient actif. Elle vérifie si instance est null (ce qui signifie qu'aucune instance n'existe encore). Si c'est le cas, elle assigne l'objet actuel (this) à instance, en faisant le Singleton;

  • Destruction des doublons : si instance n'est pas null, cela signifie qu'une autre instance existe déjà, donc le GameObject actuel est détruit pour maintenir le modèle Singleton;

  • Persistance : DontDestroyOnLoad(gameObject); assure que le GameObject persiste à travers les changements de scène, permettant au SoundManager de maintenir son état et ses fonctionnalités tout au long du jeu.

Accéder à l'Instance Singleton

Une fois que le SoundManager est configuré comme un Singleton, d'autres scripts peuvent facilement accéder à ses fonctionnalités dans tout le jeu : D'autres scripts peuvent accéder à l'instance du SoundManager en utilisant SoundManager.instance. Par exemple, pour jouer un effet audio, un autre script peut appeler SoundManager.instance.PlayEffect(index).

De cette manière, n'importe quel script dans le jeu peut accéder à l'instance du SoundManager et à ses fonctionnalités sans avoir besoin de créer plusieurs instances ou de se soucier de l'initialisation.

Avantages dans Unity

Utiliser le modèle Singleton dans Unity, en particulier pour les gestionnaires comme le SoundManager, offre plusieurs avantages :

Gestion Centralisée : il fournit un point central pour gérer les fonctionnalités liées au son, facilitant le contrôle et la maintenance de la lecture audio dans tout le jeu.

Accès Global : l'instance Singleton peut être accédée globalement depuis n'importe quel script, permettant aux différentes parties du jeu d'interagir avec le système sonore de manière transparente.

Persistance : l'instance Singleton persiste à travers les scènes, assurant une lecture audio cohérente dans tout le jeu sans interruption lors des changements de scène.

1. Quel est le but de la variable d'instance dans la classe SoundManager ?

2. Que fait DontDestroyOnLoad(gameObject) dans la classe SoundManager ?

Quel est le but de la variable d'instance dans la classe `SoundManager` ?

Quel est le but de la variable d'instance dans la classe SoundManager ?

Sélectionnez la réponse correcte

Que fait `DontDestroyOnLoad(gameObject)` dans la classe `SoundManager` ?

Que fait DontDestroyOnLoad(gameObject) dans la classe SoundManager ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

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