public void SendEventActionMessage(EventMessage msg, params object[] paramList) { if (m_addOccurEvent == true) { Debug.Log(msg); Debug.Break(); } m_addOccurEvent = true; EventActionMessgeInfo info = new EventActionMessgeInfo(); info._msg = msg; info._param = paramList; m_occurMessageList.Add(info); m_addOccurEvent = false; }
void LateUpdate() { m_occurEvent = true; if (m_classList.Count != 0) { while (true) { if (m_occurMessageList.Count == 0) { break; } EventActionMessgeInfo info = m_occurMessageList[0]; Dictionary <int, FFMonoBehaviour> .Enumerator rator = m_classList.GetEnumerator(); while (rator.MoveNext()) { FFMonoBehaviour beHavior = rator.Current.Value; if (beHavior == null) { continue; } beHavior.OccurEventActionMessage(info._msg, info._param); } m_occurMessageList.RemoveAt(0); } } m_occurEvent = false; if (m_removeClass.Count != 0) { Dictionary <int, FFMonoBehaviour> .Enumerator rator = m_removeClass.GetEnumerator(); while (rator.MoveNext()) { if (ReturnClassIndex(rator.Current.Key) == false) { FFMonoBehaviour beHavior = rator.Current.Value; if (beHavior) { Debug.Log(string.Format("{0}Class Id Error!1", beHavior.name)); } } m_classList.Remove(rator.Current.Key); } m_removeClass.Clear(); } if (m_prepareAwakeList.Count != 0) { for (int i = 0; i < m_prepareAwakeList.Count; ++i) { FFMonoBehaviour beHavior = m_prepareAwakeList[i]; beHavior.classIndex = GenerateClassIndex(); if (beHavior.classIndex == 0) { Debug.Log(beHavior.name); } m_classList.Add(beHavior.classIndex, beHavior); } m_prepareAwakeList.Clear(); } }