void TryOperState(StateEnum tAimStateEnum, StateOper tOper) { if (mStateMachine.GetCurrentState().StateType == StateEnum.Die) { return; } mStateMachine.OperState(tAimStateEnum, tOper); }
/****************** * 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"); } }