public void UnregisterObserver(uint uiGameEventId, IGameEventObserver Observer) { IGameEventSubject sub_ = GetSubject(uiGameEventId); if (sub_ != null) { sub_.Detach(Observer); } }
private IGameEventSubject GetSubject(uint uiGameEventId) { if (m_GameEvents.ContainsKey(uiGameEventId)) { return(m_GameEvents[uiGameEventId]); } else { IGameEventSubject sub_ = m_GameEventBase.NeedSubject(uiGameEventId); if (sub_ == null) { Debugger.LogError("[GameEventSystem] No subject id = " + uiGameEventId); return(null); } else { AddGameEventSubject(uiGameEventId, sub_); return(sub_); } } }
private void AddGameEventSubject(uint uiGameEventId, IGameEventSubject Subject) { m_GameEvents.Add(uiGameEventId, Subject); }