Beispiel #1
0
        //注册
        public RegEventResult Register(
            string key,
            string listener,
            SLGame.GameEventHandler handler,
            int times = EGameConstL.Infinity,
            Dictionary <string, GameEventHandlerItem> dic = null)
        {
            Dictionary <string, GameEventHandlerItem> refDic = null;

            if (dic == null)
            {
                refDic = eventsDic;
            }
            else
            {
                refDic = dic;
            }

            //如果不传dic则默认是全局广播
            GameEventHandlerItem delegateItem = null;

            if (refDic.TryGetValue(key.ToUpper(), out delegateItem))
            {
                return(delegateItem.AddEventHandler(listener, handler, times));
            }
            else
            {
                //没有
                refDic.Add(key.ToUpper(), new GameEventHandlerItem(key, listener, handler, times));

                if (dic == null)
                {
                    MgrLog(string.Format("注册世界事件:{0}, 相应次数:{1}", key, times));
                }
                else
                {
                    MgrLog(string.Format("注册本地事件:{0}, 相应次数:{1}", key, times));
                }

                return(RegEventResult.Success);
            }
        }
Beispiel #2
0
 protected void RegisterEventListener(string key, SLGame.GameEventHandler handler, int times = EGameConstL.Infinity)
 {
     EventManager.Instance.Register(key, this.gameObject.RequestorSTR(), handler, times);
 }