public static void UnRegisterEvent(int evt, EventManager.EventProcessInterface processor) { EventManager.EventListener eventListener = null; if (EventManager._eventList.TryGetValue(evt, out eventListener)) { eventListener.listeners.Remove(processor); } }
public static void SendEvent(int evt, object param) { if (!EventManager._eventList.ContainsKey(evt)) { return; } EventManager.EventProcessInterface[] array = EventManager._eventList[evt].listeners.ToArray(); EventManager.EventProcessInterface[] array2 = array; for (int i = 0; i < array2.Length; i++) { EventManager.EventProcessInterface eventProcessInterface = array2[i]; eventProcessInterface.ProcessEvent(evt, param); } }
public static void Update() { if (EventManager._eventQueue.Count == 0) { return; } List <int> eventQueue = EventManager._eventQueue; List <object> paramQueue = EventManager._paramQueue; EventManager._eventQueue = new List <int>(); EventManager._paramQueue = new List <object>(); for (int i = 0; i < eventQueue.Count; i++) { int num = eventQueue[i]; object param = paramQueue[i]; EventManager.EventProcessInterface[] array = EventManager._eventList[num].listeners.ToArray(); EventManager.EventProcessInterface[] array2 = array; for (int j = 0; j < array2.Length; j++) { EventManager.EventProcessInterface eventProcessInterface = array2[j]; try { //LagDebugControl.BeginDebug(EventManager.LAG_KEY, num, LagDebugControl.LAG_TIME); eventProcessInterface.ProcessEvent(num, param); //LagDebugControl.EndPoint(EventManager.LAG_KEY, num); } catch (Exception ex) { string str = string.Empty; if (ex.InnerException != null) { str = ex.InnerException.Message + "\n" + ex.InnerException.StackTrace; } else { str = ex.Message + "\n" + ex.StackTrace; } //Utility.AddException(str); } } } }
public static void RegisterEvent(int evt, EventManager.EventProcessInterface processor) { EventManager.EventListener eventListener = null; if (!EventManager._eventList.TryGetValue(evt, out eventListener)) { eventListener = new EventManager.EventListener(); EventManager._eventList.Add(evt, eventListener); } if (eventListener.listeners.Contains(processor)) { Debug.LogError("事件重复添加!"); return; } eventListener.listeners.Add(processor); EventManager.IEventUnregisterable eventUnregisterable = processor as EventManager.IEventUnregisterable; if (eventUnregisterable != null) { eventUnregisterable.HasRegisterEvent = true; } }