public static void RemoveListener(FayvitCamEventKey key, Action <FayvitCamEvent> acao) { List <Action <FayvitCamEvent> > callbackList; if (_eventDictionary.TryGetValue(key, out callbackList)) { callbackList.Remove(acao); } }
public static void AddListener(FayvitCamEventKey key, Action <FayvitCamEvent> callback) { List <Action <FayvitCamEvent> > callbackList; if (!_eventDictionary.TryGetValue(key, out callbackList)) { callbackList = new List <Action <FayvitCamEvent> >(); _eventDictionary.Add(key, callbackList); } callbackList.Add(callback); }
public static void Publish(FayvitCamEventKey key, FayvitCamEvent umEvento = null) { List <Action <FayvitCamEvent> > callbackList; if (_eventDictionary.TryGetValue(key, out callbackList)) { //Debug.Log(callbackList.Count+" : "+umEvento.Sender+" : "+key); foreach (var e in callbackList) { if (e != null) { e(umEvento); } else { Debug.LogWarning("Event agregator chamou uma função nula na key: " + key + "\r\n Geralmente ocorre quando o objeto do evento foi destruido sem se retirar do listener"); } } } }
public FayvitCamEvent(FayvitCamEventKey key, params object[] o) { Key = key; MySendObjects = o; }