Singleton
DÉFINITION :
Le Singleton est un patron de conception de création qui s’assure de l’existence d’un seul objet de son genre et fournit un unique point d’accès vers cet objet.
Si vous souhaitez créer un Singleton indépendant de Unity, il vous suffit d'hériter de Singleton<T>
.
Singleton Unity
Dans la plupart des cas, vous souhaiterez faire interagir votre Singleton avec la scène et hériter de MonoBehaviour
.
Pour ce faire, héritez de SingletonBehaviour<T>
. Votre script se créera de lui-même dès son premier accès.
Configuration avancée
Vous pouvez configurer votre Singleton via l'inspecteur :
- Créez un prefab dans votre dossier
Assets
; - Ajoutez-y votre Singleton et configurez-le ;
- Ouvrez l'outil
Tools > GG-Library > Manage Singletons
; - Cochez votre Singleton.
Votre Singleton sera automatiquement instancié au lancement du jeu. Exemple avec le Singleton LoadingScreen
:
Singleton contextuel
L'utilisation de Singleton est fantastique, mais parfois, on veut accéder à un objet uniquement dans une scène spécifique sans l'emmener sur d'autres... (exemple: HUD)
Un équivalent que vous pouvez hériter est CachedBehaviour<T>
, dont l'existence se limite à la scène.
Il vous faudra donc ajouter votre script manuellement dans la scène.
Note
Unity étant thread-safe, il n'est pas nécessaire d'utiliser de lock, sémaphore ou mutex comme cela est parfois conseillé.
Sauf si... 😤 sauf si vous vous la jouez ECS ??