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"); }