/* * Fonction de lancement d'un évènement * @param NomEvent nomEvent * @param InfoEvent infoEvent * @return void */ public void LancerEvent(NomEvent nomEvent, InfoEvent infoEvent) { Action <InfoEvent> cetEvent = null; //Nouvelle instance vide de la classe d'information //Si l'évènement existe dans le dictionaire... if (Instance.dictionaireEvents.TryGetValue(nomEvent, out cetEvent)) { //Éxécute toutes les fonctions abonnées à l'évènement cetEvent.Invoke(infoEvent); } }
/* * Fonction de désabonnement à une des listes d'évènements du dictionaire * @param NomEvent nomEvent * @param Action<InfoEvent> fonc * @return void */ public void DesabonnementEvent(NomEvent nomEvent, Action <InfoEvent> fonc) { Action <InfoEvent> cetEvent; //Nouvelle instance par défaut de la classe d'information //Si l'évènement existe dans le dictionaire... if (Instance.dictionaireEvents.TryGetValue(nomEvent, out cetEvent)) { //Retrait du script dans la liste éxistente cetEvent -= fonc; Instance.dictionaireEvents[nomEvent] = cetEvent; } }
/* * Fonction d'abonnement à une des listes d'évènements du dictionaire * @param NomEvent nomEvent * @param Action<InfoEvent> fonc * @return void */ public void AbonnementEvent(NomEvent nomEvent, Action <InfoEvent> fonc) { Action <InfoEvent> cetEvent; //Nouvelle instance par défaut de la classe d'information //Si l'évènement existe dans le dictionaire... if (Instance.dictionaireEvents.TryGetValue(nomEvent, out cetEvent)) { //Ajout du script dans la liste éxistente cetEvent += fonc; Instance.dictionaireEvents[nomEvent] = cetEvent; } //Sinon... else { //Ajout du script dans une nouvelle liste cetEvent += fonc; Instance.dictionaireEvents.Add(nomEvent, cetEvent); } }