Beispiel #1
0
 public static void UnRegisterEvent(int evt, EventManager.EventProcessInterface processor)
 {
     EventManager.EventListener eventListener = null;
     if (EventManager._eventList.TryGetValue(evt, out eventListener))
     {
         eventListener.listeners.Remove(processor);
     }
 }
Beispiel #2
0
 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);
     }
 }
Beispiel #3
0
        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);
                    }
                }
            }
        }
Beispiel #4
0
 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;
     }
 }