public void Setup(FSMState state) { if (stateStack == null) { stateStack = new Stack <FSMState>(); } stateStack.Clear(); stateStack.Push(state); nowState = state; nextState = null; nowState.BeginState(); nowState.DoState(); }
public void UpdateFSM() { nowState.CheckTrans(this); if (nextState != null) { stateStack.Push(nextState); nowState.EndState(); nowState = nextState; nextState = null; nowState.BeginState(); } nowState.DoState(); }