예제 #1
0
 public RunnerFSMContext AddTransition(IEnumerable<RunnerState> forStates, InputState inputState, TransitionInfo transitionInfo)
 {
     if (transitionInfo.TransitionName == null)
     {
         transitionInfo.TransitionName = GetStartName(forStates) + "To" + transitionInfo.NextState;
     }
     foreach (var forState in forStates)
     {
         AddTransition(forState, inputState, transitionInfo);
     }
     return this;
 }
예제 #2
0
 private bool IsDelayUp(TransitionInfo transitionInfo)
 {
     if (transitionInfo.DelayTime.HasValue)
     {
         var delay = (lastUseTime + transitionInfo.DelayTime.Value);
         var delayUp =  delay <= Time.time;
         return delayUp;
     }
     return true;
 }
예제 #3
0
 public RunnerFSMContext AddTransition(RunnerState forState, InputState inputState, TransitionInfo transitionInfo)
 {
     if (transitionInfo.TransitionName == null)
         transitionInfo.TransitionName = forState + "To" + transitionInfo.NextState;
     _registeredTransitions.Add(transitionInfo);
     _fsm._availableTransitions[forState][inputState].Add(transitionInfo);
     return this;
 }
예제 #4
0
 private static bool IsTransitionReady(TransitionInfo t)
 {
     return (t.LastUseTime - Time.time) <= 0;
 }