static int DoAddAll(int msg, int code, object onFire) { EventObserver observer = IdTypePool <EventObserver> .Get(); observer.Init(null, msg, code, true, onFire); AllNotifier.Add(observer); m_observersById.Add(observer.Id, observer); return(observer.Id); }
//监听,onFire返回false表示否决(之后的监听者不执行) static int DoAdd(EventNotifier notifier, int msg, int code, object onFire) { if (notifier == null || !m_notifiersById.ContainsKey(notifier.Id)) { Debuger.LogError(string.Format("观察对象找不到:{0}", msg + code)); return(Invalid_Id); } EventObserver observer = IdTypePool <EventObserver> .Get(); observer.Init(notifier, msg, code, false, onFire); notifier.Add(observer); AllFireNotifier.Add(observer); m_observersById.Add(observer.Id, observer); return(observer.Id); }