コード例 #1
0
ファイル: EventManager.cs プロジェクト: 602147629/GDGJ_Script
 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;
     }
 }
コード例 #2
0
ファイル: EventManager.cs プロジェクト: 602147629/GDGJ_Script
 public static void UnRegisterAll(EventManager.IEventUnregisterable processor)
 {
     if (!processor.HasRegisterEvent)
     {
         return;
     }
     foreach (KeyValuePair <int, EventManager.EventListener> current in EventManager._eventList)
     {
         List <EventManager.EventProcessInterface> listeners = current.Value.listeners;
         if (listeners.Contains(processor))
         {
             List <EventManager.EventProcessInterface> list = new List <EventManager.EventProcessInterface>();
             foreach (EventManager.EventProcessInterface current2 in listeners)
             {
                 if (current2 != processor)
                 {
                     list.Add(current2);
                 }
             }
             current.Value.listeners = list;
         }
     }
 }