Esempio n. 1
0
            public bool Subscribe(int inID, IGameEventSubscriber inSubscriber)
            {
                List <IGameEventSubscriber> subscriberList;

                if (subscriberDic.TryGetValue(inID, out subscriberList))
                {
                    if (subscriberList.Contains(inSubscriber))
                    {
                        Debug.LogError("GameEventRouter already contains subscriber! : " + inID + "[" + inSubscriber + "]");
                        return(false);
                    }
                }
                else
                {
                    subscriberList = new List <IGameEventSubscriber>();
                    subscriberDic.Add(inID, subscriberList);

                    if (publisher != null)
                    {
                        publisher.Subscribe(inID, this);
                    }
                }

                subscriberList.Add(inSubscriber);

                return(true);
            }
Esempio n. 2
0
            public bool UnSubscribe(int inID, IGameEventSubscriber inSubscriber)
            {
                List <IGameEventSubscriber> subscriberList;

                if (subscriberDic.TryGetValue(inID, out subscriberList))
                {
                    if (!subscriberList.Contains(inSubscriber))
                    {
                        Debug.LogError("GameEventRouter not contains subscriber! : " + inID + "[" + inSubscriber + "]");
                        return(false);
                    }
                }
                else
                {
                    Debug.LogError("GameEventRouter not contains subscriber! : " + inID + "[" + inSubscriber + "]");
                    return(false);
                }

                subscriberList.Remove(inSubscriber);

                if (subscriberList.Count == 0)
                {
                    subscriberDic.Remove(inID);
                    if (publisher != null)
                    {
                        publisher.UnSubscribe(inID, this);
                    }
                }

                return(true);
            }
Esempio n. 3
0
 public bool UnSubscribe(int inID, IGameEventSubscriber inSubscriber)
 {
     return(gameEventRouter.UnSubscribe(inID, inSubscriber));
 }
Esempio n. 4
0
 public void AddSubscriber(IGameEventSubscriber subscriber)
 {
     _subscribers.Add(subscriber);
 }