public void Update() { if (mListEvent == null) { mParamIndex = (mParamIndex + 1) % 2; mListEvent = paramArray[mParamIndex]; UnityEngine.Debug.Log("paramArray:" + paramArray.Length); } if (mListEvent.Count == 0) { return; } List <LogicEvent> oldEvent = mListEvent; mParamIndex = (mParamIndex + 1) % 2; mListEvent = paramArray[mParamIndex]; for (int i = 0; i < oldEvent.Count; ++i) { LogicEvent le = oldEvent[i]; List <EventHandler> lh; if (!mDicHandler.TryGetValue(le.Event, out lh)) { string logText = "event = " + le.Event.ToString() + " not find Handler"; UnityEngine.Debug.Log(logText); continue; } for (int j = 0; j < lh.Count; ++j) { try //暂时不纠结异常问题 { lh[j].HandleEvent(le.Event, le); } catch (System.Exception e) { UnityEngine.Debug.Log(le.Event + " " + e.Message); } } if (!le.Locked) { LogicEvent.DestroyEvent(le); } } oldEvent.Clear(); }