public static void RemoveListener <MMEvent>(EXEventListener <MMEvent> listener) where MMEvent : struct { Type eventType = typeof(MMEvent); if (!_subscribersList.ContainsKey(eventType)) { return; } List <EXEventListenerBase> subscriberList = _subscribersList[eventType]; bool listenerFound; listenerFound = false; if (listenerFound) { } for (int i = 0; i < subscriberList.Count; i++) { if (subscriberList[i] == listener) { subscriberList.Remove(subscriberList[i]); listenerFound = true; if (subscriberList.Count == 0) { _subscribersList.Remove(eventType); } return; } } }
public static void AddListener <EXEvent>(EXEventListener <EXEvent> listener) where EXEvent : struct { Type eventType = typeof(EXEvent); if (!_subscribersList.ContainsKey(eventType)) { _subscribersList[eventType] = new List <EXEventListenerBase>(); } if (!SubscriptionExists(eventType, listener)) { _subscribersList[eventType].Add(listener); } }
public static void EXEventStopListening <EventType>(this EXEventListener <EventType> caller) where EventType : struct { EXEventManager.RemoveListener <EventType>(caller); }