Пример #1
0
 public void DeleteState(SoldierStateType stateType)
 {
     if (stateType == SoldierStateType.NullState)
     {
         Debug.Log("将要删除的状态为空");
     }
 }
Пример #2
0
    public void PerformTransition(SoldierTransition tran)
    {
        if (tran == SoldierTransition.NullTransition)
        {
            Debug.Log("要执行的转换条件为空");
        }

        SoldierStateType nextState = mCurrentState.GetTargetStateType(tran);

        if (nextState == SoldierStateType.NullState)
        {
            Debug.Log("在 " + tran + " 条件下,没有对应的目标状态");
            return;
        }

        foreach (SoldierState item in mStates)
        {
            if (item.StateType == nextState)
            {
                mCurrentState.DoBeforeLeaving();
                mCurrentState = item;
                mCurrentState.DoBeforeEntering();
            }
        }
    }
Пример #3
0
    public void AddTransition(SoldierTransition tran, SoldierStateType state)
    {
        if (tran == SoldierTransition.NullTransition)
        {
            Debug.Log("转换条件为空");
        }

        if (state == SoldierStateType.NullState)
        {
            Debug.Log("目标状态为空");
        }

        if (relationDic.ContainsKey(tran))
        {
            Debug.Log("已包含该转换");
        }
        relationDic.Add(tran, state);
    }