public void AddListener <TEvent>(EventHandlerDelegate <TEvent> handler, EventDispatcher.Priority priority = EventDispatcher.Priority.DEFAULT) where TEvent : struct { dispatcher.AddListener(handler, priority); handlers.Add(handler, delegate { dispatcher.RemoveListener(handler); }); }
public void AddListenerOneShot <TEvent>(EventHandlerDelegate <TEvent> handler, EventDispatcher.Priority priority = EventDispatcher.Priority.DEFAULT) where TEvent : struct { EventHandlerDelegate <TEvent> oneShotHandler = null; oneShotHandler = (EventHandlerDelegate <TEvent>)(EventHandlerDelegate <TEvent>) delegate(TEvent e) { dispatcher.RemoveListener((EventHandlerDelegate <TEvent>)oneShotHandler); return(handler(e)); }; AddListener((EventHandlerDelegate <TEvent>)oneShotHandler, priority); oneShotHandlers.Add(handler, oneShotHandler); }
public void AddListener <T>(EventHandlerDelegate <T> handler, EventDispatcher.Priority priority = EventDispatcher.Priority.DEFAULT) where T : struct { eventDispatcher.AddListener(handler, priority); }