Exemple #1
0
    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;
    }
Exemple #2
0
    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();
        }
    }