//Remove um observador de um evento public static void RemoveListner(string eventName, UnityAction <Hashtable> listener) { if (!mng) { return; } //Impede que tentemos remover um evento se o singleton nao foi criado ,inicializado ou foi removido. HashTableEvent someEvent = null; if (instance.events.TryGetValue(eventName, out someEvent)) { someEvent.RemoveListener(listener); } }
//Envia uma mensagem para todos os observadores do evento, passando os parametros necessarios public static void BroadcastEvent(string eventName, Hashtable eventParams = default) { HashTableEvent someEvent = null; if (instance.events.TryGetValue(eventName, out someEvent)) { someEvent.Invoke(eventParams); } else { Debug.LogWarningFormat("Broadcasting event \"{0}\" but no one is listening", eventName); } }
//Adiciona um observador para um evento public static void AddListener(string eventName, UnityAction <Hashtable> listener) { HashTableEvent someEvent = null; if (instance.events.TryGetValue(eventName, out someEvent)) { someEvent.AddListener(listener); } else { someEvent = new HashTableEvent(); someEvent.AddListener(listener); instance.events.Add(eventName, someEvent); } }