예제 #1
0
    public void SetListener(SimpleEvent e)
    {
        UnityEventHandle handler;

        if (!m_EventHandelDic.TryGetValue(e.Type, out handler))
        {
            handler = new UnityEventHandle();
            m_EventHandelDic.Add(e.Type, handler);
        }

        handler.SetListener(e);
    }
예제 #2
0
    public void FireEvent(string type, string sender, IMessage message = null, bool transmit = true)
    {
        if (type == BaseEventType.NULL)
        {
            return;
        }

        var e = sender == null ? type : string.Format("{0}.{1}", type, sender);

        var event_list = e.Split('.');

        message = message ?? new EmptyMessage();

        Debug.Log(string.Format("[EventCenter]{0} Fire Event:{1} - {2} - {3}", Name, type, sender, message.ToString()));

        System.Text.StringBuilder event_type = new System.Text.StringBuilder();

        for (int i = 0; i < event_list.Length; i++)
        {
            event_type.Append(event_list[i]);

            foreach (var item in m_EventHandelDic)
            {
                string           t = item.Key;
                UnityEventHandle h = item.Value;

                if (t == event_type.ToString())
                {
                    h.Invoke(sender, message);
                    break;
                }
            }

            event_type.Append(".");
        }
    }