Пример #1
0
        IEnumerator Start()
        {
            MsgDispatcher.Send("Do", "Hello");

            SendMsg("OK", "hello");
            SendMsg("OK", "hello");

            yield return(new WaitForSeconds(1.0f));

            MsgDispatcher.Send("Do", "Hello1");
        }
Пример #2
0
        private void OnDestroy()
        {
            OnBeforeDestroy();

            foreach (var msgRecord in mMsgRecorder)
            {
                MsgDispatcher.UnRegister(msgRecord.Name, msgRecord.OnMsgReceived);
                msgRecord.Recycle();
            }

            mMsgRecorder.Clear();
        }
Пример #3
0
        protected void UnRegisterMsg(string msgName, Action <object> onMsgReceived)
        {
            var selectedRecords = mMsgRecorder.FindAll(recorder => recorder.Name == msgName && recorder.OnMsgReceived == onMsgReceived);

            selectedRecords.ForEach(selectRecord =>
            {
                MsgDispatcher.UnRegister(selectRecord.Name,
                                         selectRecord.OnMsgReceived);
                mMsgRecorder.Remove(selectRecord);
                selectRecord.Recycle();
            });
            selectedRecords.Clear();
        }
Пример #4
0
        private static void MenuClicked()
        {
            //全部清空,确保事例有效
            MsgDispatcher.UnRegisterAll("MSG1");

            MsgDispatcher.Register("MSG1", OnMsgReceived);
            MsgDispatcher.Register("MSG1", OnMsgReceived);

            MsgDispatcher.Send("MSG1", "hello world");

            MsgDispatcher.UnRegister("MSG1", OnMsgReceived);

            MsgDispatcher.Send("MSG1", "hello");
        }
Пример #5
0
        private void Awake()
        {
            MsgDispatcher.UnRegisterAll("Do");
            MsgDispatcher.UnRegisterAll("OK");

            RegisterMsg("Do", DoSomething);
            RegisterMsg("Do", DoSomething);
            RegisterMsg("Do1", _ => { });
            RegisterMsg("Do2", _ => { });
            RegisterMsg("Do3", _ => { });

            RegisterMsg("OK", data =>
            {
                Debug.Log(data);

                UnRegisterMsg("OK");
            });
        }
Пример #6
0
 protected void SendMsg(string msgName, object data)
 {
     MsgDispatcher.Send(msgName, data);
 }
Пример #7
0
 protected void RegisterMsg(string msgName, Action <object> onMsgReceived)
 {
     MsgDispatcher.Register(msgName, onMsgReceived);
     mMsgRecorder.Add(MsgRecord.Allocate(msgName, onMsgReceived));
 }