public static void RemoveListener(EventTypes eventName, UnityAction <object> listener) { if (eventManager == null) { return; } UnityEventWithObject thisEvent = null; if (Instance.eventDictionary.TryGetValue(eventName, out thisEvent)) { thisEvent.RemoveListener(listener); } }
public static void AddListener(EventTypes eventName, UnityAction <object> listener) { UnityEventWithObject thisEvent = null; if (Instance.eventDictionary.TryGetValue(eventName, out thisEvent)) { thisEvent.AddListener(listener); } else { thisEvent = new UnityEventWithObject(); thisEvent.AddListener(listener); Instance.eventDictionary.Add(eventName, thisEvent); } }
public static void TriggerEvent(EventTypes eventName, object parameter) { UnityEventWithObject thisEvent = null; if (Instance.eventDictionary.TryGetValue(eventName, out thisEvent)) { thisEvent.Invoke(parameter); } TaskCompletionSource <object> taskCompletion; if (Instance.eventCompleteAwaiters.TryGetValue(eventName, out taskCompletion)) { Instance.eventCompleteAwaiters.Remove(eventName); taskCompletion.SetResult(parameter); } }