public void UnregisterListener(GameEventListenerObj listener)
 {
     if (eventListenerObjs.Contains(listener))
     {
         eventListenerObjs.Remove(listener);
     }
 }
 public void RegisterListener(GameEventListenerObj listener)
 {
     if (!eventListenerObjs.Contains(listener))
     {
         eventListenerObjs.Add(listener);
     }
 }
 private void OnDisable()
 {
     for (int i = listeners.Length - 1; i >= 0; i--)
     {
         GameEventListenerObj gelo = listeners[i];
         if (gelo.Event == null)
         {
             continue;
         }
         gelo.Event.UnregisterListener(gelo);
     }
 }
 private void OnEnable()
 {
     for (int i = listeners.Length - 1; i >= 0; i--)
     {
         GameEventListenerObj gelo = listeners[i];
         try
         {
             //print("Enabling Listener " + gelo.name);
             gelo.Event.RegisterListener(gelo);
         }
         catch (NullReferenceException e)
         {
             Debug.LogError("NullReferenceException: Event missing! GameObject: " + gelo.name);
         }
     }
 }