/// <summary> /// 모든 이벤트들을 순서대로 빼내어서 등록된 리스너들을 실행한다. /// </summary> void Update() { for ( ; eventQueue.Count != 0;) { GlobalEventParameter p = eventQueue.Dequeue(); UnityAction <object> founded = null; if (listeners.TryGetValue(p.eventName, out founded)) { founded.Invoke(p.value); ParameterPool.ReturnPool(p); if (null != p.value) { ParameterPool.ReturnPool(p.value); p.value = null; } } else { //UnityEngine.Debug.LogFormat( "{0}, {1} is not contain at listener" , p.eventName , p.value ); } } }
/// <summary> /// 이벤트 넣기 /// </summary> /// <param name="param"></param> public static void EnQueueEvent(GlobalEventParameter param) { Instance.eventQueue.Enqueue(param); }