private IGameEventSubject GetGameEventSubject(ENUM_GameEvent emGameEvent) { if (m_GameEvents.ContainsKey(emGameEvent)) { return(m_GameEvents[emGameEvent]); } IGameEventSubject rtsSubject = null; switch (emGameEvent) { case ENUM_GameEvent.EnemyKilled: rtsSubject = new EnemyKilledSubject(); break; case ENUM_GameEvent.SoldierKilled: rtsSubject = new SoldierKilledSubject(); break; case ENUM_GameEvent.SoldierUpgate: rtsSubject = new SoldierUpgateSubject(); break; case ENUM_GameEvent.NewStage: rtsSubject = new NewStageSubject(); break; default: Debug.Log("还没有针对[" + emGameEvent + "]指定要产生的Subject类"); return(null); } m_GameEvents.Add(emGameEvent, rtsSubject); return(rtsSubject); }
// 註冊一個事件 private IGameEventSubject GetGameEventSubject( ENUM_GameEvent emGameEvnet ) { // 是否已經存在 if( m_GameEvents.ContainsKey( emGameEvnet )) return m_GameEvents[emGameEvnet]; // 產生對映的GameEvent IGameEventSubject pSujbect= null; switch( emGameEvnet ) { case ENUM_GameEvent.EnemyKilled: pSujbect = new EnemyKilledSubject(); break; case ENUM_GameEvent.SoldierKilled: pSujbect = new SoldierKilledSubject(); break; case ENUM_GameEvent.SoldierUpgate: pSujbect = new SoldierUpgateSubject(); break; case ENUM_GameEvent.NewStage: pSujbect = new NewStageSubject(); break; default: Debug.LogWarning("還沒有針對["+emGameEvnet+"]指定要產生的Subject類別"); return null; } // 加入後並回傳 m_GameEvents.Add (emGameEvnet, pSujbect ); return pSujbect; }
// 注册一个事件 private IGameEventSubject GetGameEventSubject(ENUM_GameEvent emGameEvnet) { // 是否已經存在 if (m_GameEvents.ContainsKey(emGameEvnet)) { return(m_GameEvents[emGameEvnet]); } // 产生对应的GameEvent IGameEventSubject pSujbect = null; switch (emGameEvnet) { case ENUM_GameEvent.EnemyKilled: pSujbect = new EnemyKilledSubject(); break; case ENUM_GameEvent.SoldierKilled: pSujbect = new SoldierKilledSubject(); break; case ENUM_GameEvent.SoldierUpgate: pSujbect = new SoldierUpgateSubject(); break; case ENUM_GameEvent.NewStage: pSujbect = new NewStageSubject(); break; default: Debug.LogWarning("还沒有针对[" + emGameEvnet + "]指定要产生的Subject类别"); return(null); } // 加入后并回传 m_GameEvents.Add(emGameEvnet, pSujbect); return(pSujbect); }
// 設定觀察的主題 public override void SetSubject( IGameEventSubject Subject ) { m_Subject = Subject as SoldierUpgateSubject; }
// 設定觀察的主題 public override void SetSubject(IGameEventSubject Subject) { m_Subject = Subject as SoldierUpgateSubject; }