示例#1
0
        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;
	}
示例#5
0
 // 設定觀察的主題
 public override void SetSubject(IGameEventSubject Subject)
 {
     m_Subject = Subject as SoldierUpgateSubject;
 }