protected IEnumerator SetState(ICoroutineState newState) { return(stateMachine.TransitionToState(newState)); }
/// <summary> /// Transition to new <see cref="ICoroutineState"/> and returns <see cref="IEnumerator"/> from starting it /// </summary> /// <param name="newState"></param> /// <returns></returns> protected void SetState(ICoroutineState newState) { // if SetState is called from inside of coroutine it won't stop it from running // awaitingStateTransition variable is set, so that transition can happen in next FixedUpdate awaitingStateTransition = newState; }
private void ApplyAwaitingStateTransition() { SetCoroutine(stateMachine.TransitionToState(awaitingStateTransition)); awaitingStateTransition = null; }
public IEnumerator TransitionToState(ICoroutineState newState) { currentState.ExitState(); currentState = newState; return(currentState.StartState()); }