public EventInfo GetEventInfo(string eventName, GameObject parentGameObject = null, EventInfo eventInfo = null) { if (eventInfo == null) { eventInfo = new EventInfo(); } if (_listeners.ContainsKey(eventName)) { List <IEventListener> list = _listeners[eventName]; int count = list.Count; for (int i = 0; i < count; i++) { IEventListener eventListener = list[i]; if (!IsNullOrDestroyed(eventListener) && eventListener.IsActive(parentGameObject)) { eventListener.GetEventInfo(parentGameObject, ref eventInfo); } } } return(eventInfo); }