Esempio n. 1
0
    public static EventNotifier Get()
    {
        EventNotifier notifier = IdTypePool <EventNotifier> .Get();

        notifier.Init();
        m_notifiersById.Add(notifier.Id, notifier);
        return(notifier);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    //监听,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);
    }