public static TMsg Allocate <T>(T eventId) where T : IConvertible { TMsg msg = SafeObjectPool <TMsg> .Instance.Allocate(); msg.EventID = eventId.ToInt32(null); msg.ReuseAble = true; return(msg); }
public override void SendMsg(TMsg msg) { if (msg.ManagerID == ManagerId) { Process(msg.EventID, msg); } else { //QMsgCenter.Instance.SendMsg(msg); } }
public void Process(int eventId, params object[] param) { if (mReceiveMsgOnlyObjActive && gameObject.activeInHierarchy || !mReceiveMsgOnlyObjActive) { TMsg msg = param[0] as TMsg; ProcessMsg(eventId, msg); msg.Processed = true; if (msg.ReuseAble) { msg.Recycle2Cache(); } } }
// 来了消息以后,通知整个消息链 protected override void ProcessMsg(int eventId, TMsg msg) { mEventSystem.Send(msg.EventID, msg); }
public override void SendEvent <T>(T eventId) { SendMsg(TMsg.Allocate(eventId)); }
public virtual void SendMsg(TMsg msg) { Manager.SendMsg(msg); }
protected virtual void ProcessMsg(int eventId, TMsg msg) { }