private void OnDestroy() { OnBeforeDestroy(); foreach (MsgRecord msgRecord in mMsgRecorder) { MsgDispatcher.UnRegister(msgRecord.Name, msgRecord.OnMsgReceived); msgRecord.Recycle(); } mMsgRecorder.Clear(); }
public void UnRegister(string msgName, Action <object> onMsgReceived) { var selectedRecords = mMsgRecorder.FindAll(record => record.Name == msgName && record.OnMsgReceived == onMsgReceived); selectedRecords.ForEach(record => { MsgDispatcher.UnRegister(record.Name, record.OnMsgReceived); record.Recycle(); }); selectedRecords.Clear(); }
private static void MenuClicked() { MsgDispatcher.UnRegister("消息1"); MsgDispatcher.Register("消息1", OnMsgReceived); MsgDispatcher.Register("消息1", OnMsgReceived); MsgDispatcher.Send("消息1", "Hello World"); MsgDispatcher.UnRegister("消息1", OnMsgReceived); MsgDispatcher.Send("消息1", "Hello"); }
protected void Send(string msgName, object data) { MsgDispatcher.Send(msgName, data); }
public void Register(string msgName, Action <object> onMsgReceived) { MsgDispatcher.Register(msgName, onMsgReceived); mMsgRecorder.Add(MsgRecord.Allocate(msgName, onMsgReceived)); }