internal void Unregister <T>(CourierEventListener handler) where T : CourierEventBase { if (_eventDictionary.TryGetValue(typeof(T), out List <CourierEventListener> handlerList)) { handlerList.Remove(handler); } }
internal void Register <T>(CourierEventListener handler) where T : CourierEventBase { if (_eventDictionary.TryGetValue(typeof(T), out List <CourierEventListener> handlerList)) { if (!handlerList.Contains(handler)) { handlerList.Add(handler); } } else { List <CourierEventListener> newHandlerList = new List <CourierEventListener> { handler }; _eventDictionary.Add(typeof(T), newHandlerList); } }
public static void Unregister <T>(CourierEventListener handler) where T : CourierEventBase { Instance.Unregister <T>(handler); }