Beispiel #1
0
        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);
        }
Beispiel #2
0
 public override void SendMsg(TMsg msg)
 {
     if (msg.ManagerID == ManagerId)
     {
         Process(msg.EventID, msg);
     }
     else
     {
         //QMsgCenter.Instance.SendMsg(msg);
     }
 }
Beispiel #3
0
 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();
         }
     }
 }
Beispiel #4
0
 // 来了消息以后,通知整个消息链
 protected override void ProcessMsg(int eventId, TMsg msg)
 {
     mEventSystem.Send(msg.EventID, msg);
 }
Beispiel #5
0
 public override void SendEvent <T>(T eventId)
 {
     SendMsg(TMsg.Allocate(eventId));
 }
Beispiel #6
0
 public virtual void SendMsg(TMsg msg)
 {
     Manager.SendMsg(msg);
 }
Beispiel #7
0
 protected virtual void ProcessMsg(int eventId, TMsg msg)
 {
 }