public void FireGlobalEvent(EventInfoBase eventInfo) { System.Type trueEventInfoClass = eventInfo.GetType(); if ((globalEventListeners == null || !globalEventListeners.ContainsKey(trueEventInfoClass)) && (unityEventListeners == null || !unityEventListeners.ContainsKey(trueEventInfoClass))) { // No one is listening, we are done. return; } StartCoroutine(FireEventRoutine(eventInfo, trueEventInfoClass)); }
private IEnumerator FireUnityEvents(EventInfoBase eventInfo) { System.Type trueEventInfoClass = eventInfo.GetType(); if (unityEventListeners == null) { yield break; } foreach (Dictionary <System.Type, List <UnityEventEventInfo> > eventListeners in unityEventListeners.Values) { if (!eventListeners.ContainsKey(trueEventInfoClass) || eventListeners[trueEventInfoClass] == null) { // No one is listening, we are done. continue; } foreach (UnityEventEventInfo el in eventListeners[trueEventInfoClass]) { el.Invoke(eventInfo); } } yield return(null); }
private IEnumerator Fire(EventInfoBase eventInfo) { System.Type trueEventInfoClass = eventInfo.GetType(); if (instanceEventListeners == null) { yield break; } foreach (Dictionary <System.Type, List <LocalEventListener> > eventListeners in instanceEventListeners.Values) { if (!eventListeners.ContainsKey(trueEventInfoClass) || eventListeners[trueEventInfoClass] == null) { // No one is listening, we are done. continue; } foreach (LocalEventListener el in eventListeners[trueEventInfoClass]) { el(eventInfo); } } yield return(null); }