public void PostEvent(string eventName, Parameters param = null) { //Don't queue the event unless necessary if (this.eventListeners == null || this.eventListeners.ContainsKey(eventName) == false || this.eventListeners[eventName].Count == 0) { return; } EventNameParam eventToQueue = new EventNameParam(); eventToQueue.eventName = eventName; eventToQueue.param = param; this.eventQueue.Enqueue(eventToQueue); }
void Update() { if (this.isInitialized == false || this.eventQueue == null) { return; } if (this.eventQueue.Count > 0) { for (int i = 0; i < MAX_POST_EVENTS_PER_FRAME && i < this.eventQueue.Count; i++) { EventNameParam eventQueued = this.eventQueue.Dequeue(); this.InvokeEventListeners(eventQueued.eventName, eventQueued.param); } } }