IEnumerator Start() { MsgDispatcher.Send("Do", "Hello"); SendMsg("OK", "hello"); SendMsg("OK", "hello"); yield return(new WaitForSeconds(1.0f)); MsgDispatcher.Send("Do", "Hello1"); }
private void OnDestroy() { OnBeforeDestroy(); foreach (var msgRecord in mMsgRecorder) { MsgDispatcher.UnRegister(msgRecord.Name, msgRecord.OnMsgReceived); msgRecord.Recycle(); } mMsgRecorder.Clear(); }
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(); }
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"); }
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"); }); }
protected void SendMsg(string msgName, object data) { MsgDispatcher.Send(msgName, data); }
protected void RegisterMsg(string msgName, Action <object> onMsgReceived) { MsgDispatcher.Register(msgName, onMsgReceived); mMsgRecorder.Add(MsgRecord.Allocate(msgName, onMsgReceived)); }