Beispiel #1
0
	//刪除Transition
	public void RemoveTranstion(eTransitionID tID){
		//不處理
		if (tID == eTransitionID.None) {
			return;
		}
		//m_StateMap有包含TransitionID,就刪除
		if (m_StateMap.ContainsKey (tID)) {
			m_StateMap.Remove (tID);
		}
	}
Beispiel #2
0
	//增加Transition(對應的TransitionID,要去的StateID)
	public void AddTransition(eTransitionID tID, eStateID sID){
		//不處理
		if(tID == eTransitionID.None || sID == eStateID.None){
			return;
		}
		//m_StateMap是否包含TransitionID,是就不處理
		if(m_StateMap.ContainsKey(tID)){
			return;
		}
		m_StateMap.Add(tID, sID);
	}
Beispiel #3
0
	//給一個TransitionID,把要output出去的StateID寫出來
	public eStateID GetOutputStateID(eTransitionID tID){
		if (m_StateMap.ContainsKey (tID)) {
			return m_StateMap [tID];
		}
		return eStateID.None;
	}
Beispiel #4
0
	//做State的切換
	public void PerformTransition(eTransitionID tID, AIData data){
		if(tID == eTransitionID.None){
			return;
		}
		eStateID sID = m_currentState.GetOutputStateID (tID);
		if (sID == eStateID.None) {
			return;
		}
		m_currentStateID = sID;
		int iCount = m_State.Count;
		for (int i = 0; i < iCount; i++) {
			if (m_State [i].m_StateID == m_currentStateID) {
				m_currentState.DoBeforeLeave (data);
				m_currentState = m_State [i];
				m_currentState.DoBeforeEnter (data);
				break;
			}
		}
	}