protected void Update() { if (m_events == null || m_events.Count == 0) { return; } for (int i = m_events.Count - 1; i >= 0; i--) { GameEvent gameEvent = m_events[i]; m_events.Remove(gameEvent); if (gameEvent.NeedSendEvent()) { GameEventListener listener = GetGameEventListenerByEventID(gameEvent.EventID); if (listener != null) { listener.DispatchGameEvent(gameEvent); } } } }