void TryOperState(StateEnum tAimStateEnum, StateOper tOper)
 {
     if (mStateMachine.GetCurrentState().StateType == StateEnum.Die)
     {
         return;
     }
     mStateMachine.OperState(tAimStateEnum, tOper);
 }
Exemplo n.º 2
0
    /******************
     * this Function aims to operThe State
     *******************/
    public void OperState(StateEnum tAimStateEnum, StateOper tOper)
    {
        if (!IsWorking)
        {
            return;
        }

        switch (tOper)
        {
        case StateOper.Enter:
            if (mStateList.Count > 0)
            {
                mStateList[0].mdGetOutState();
            }
            mStateList.Insert(0, mAllStateDic[tAimStateEnum]);
            mStateList[0].mdGetInState();
            break;

        case StateOper.Switch:
            mStateList[0].mdGetOutState();
            mStateList[0] = mAllStateDic[tAimStateEnum];
            mStateList[0].mdGetInState();
            break;

        case StateOper.Exit:
            mStateList[0].mdGetOutState();
            mStateList.RemoveAt(0);
            if (mStateList.Count > 0)
            {
                mStateList[0].mdGetInState();
            }
            break;
        }
        if (mStateList.Count == 0)
        {
            Debug.LogError("state machine is empty");
        }
    }