示例#1
0
 public void RegisterListener(EventListenerSO listener, ObjectEvent callback)
 {
     if (!IsRegistered(listener))
     {
         listenersCallbacks.Add(new ListenerEventPair(listener, callback));
     }
 }
示例#2
0
        public void UnregisterListener(EventListenerSO listener)
        {
            ListenerEventPair listenerEventPair = null;

            if (Find(listener, out listenerEventPair))
            {
                listenersCallbacks.Remove(listenerEventPair);
            }
        }
示例#3
0
 private bool IsRegistered(EventListenerSO listener)
 {
     for (int i = listenersCallbacks.Count - 1; i >= 0; i--)
     {
         if (listenersCallbacks[i].listener == listener)
         {
             return(true);
         }
     }
     return(false);
 }
示例#4
0
 private bool Find(EventListenerSO listener, out ListenerEventPair listenerEventPair)
 {
     listenerEventPair = null;
     for (int i = listenersCallbacks.Count - 1; i >= 0; i--)
     {
         if (listenersCallbacks[i].listener == listener)
         {
             listenerEventPair = listenersCallbacks[i];
             return(true);
         }
     }
     return(false);
 }
示例#5
0
 public ListenerEventPair(EventListenerSO listener, ObjectEvent objectEvent)
 {
     this.listener    = listener;
     this.objectEvent = objectEvent;
 }