예제 #1
0
 void SetState(BtStates newState, float timeout = 0.0f)
 {
     if (timeout > 0.0f)
     {
         nextState        = newState;
         nextStateTimeout = timeout;
     }
     else
     {
         state.Advance(newState);
     }
 }
예제 #2
0
 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);
         }
     }
 }