void SetState(BtStates newState, float timeout = 0.0f) { if (timeout > 0.0f) { nextState = newState; nextStateTimeout = timeout; } else { state.Advance(newState); } }
void Update() { if (nextStateTimeout > 0f && nextState != BtStates.NullState) { nextStateTimeout -= Time.deltaTime; if (nextStateTimeout <= 0f) { Debug.Log("nextState = " + nextState + " state = " + state.GetState()); nextStateTimeout = 0f; BtStates tmp = nextState; nextState = BtStates.NullState; state.Advance(tmp); } } }