コード例 #1
0
        public void Switch(Type T)
        {
            if (CurrentState != null)
            {
                if (!permitLoopTransistion && (CurrentState.GetType() == T))
                {
                    return;
                }
                ((MonoBehaviour)CurrentState).enabled = false;
                CurrentState.Exit();
            }
            if (enableStackedStates)
            {
                currentStates.Push(states[T]);
            }
            else
            {
                currentState = states[T];
            }
            ((MonoBehaviour)CurrentState).enabled = true;
            CurrentState.Enter();

            if (orderTransistions)
            {
                CurrentState.Transistions.Sort();
            }
        }
コード例 #2
0
ファイル: MovingState.cs プロジェクト: jballaban/game1
 private Type Transistion(ISmState state)
 {
     if (currentState == GoToState.Pulsed)
     {
         return(typeof(MovingState));
     }
     return(null);
 }
コード例 #3
0
ファイル: MovingState.cs プロジェクト: jballaban/game1
 private Type DoneTransistion(ISmState state)
 {
     if (currentState != GoToState.Active)
     {
         return(typeof(IdleState));
     }
     return(null);
 }
コード例 #4
0
 private Type Transition(ISmState state)
 {
     if (currentState == GoToState.Pulsed)
     {
         return(typeof(SmsGoTo));
     }
     return(null);
 }
コード例 #5
0
ファイル: SmsGoTo.cs プロジェクト: xiaohuijun/ReGoap
 private Type Transition(ISmState state)
 {
     if (currentState == GoToState.Pulsed)
     {
         return(GetType());
     }
     return(null);
 }
コード例 #6
0
 public void AddState(ISmState state)
 {
     state.Init(this);
     states[state.GetType()] = state;
 }
コード例 #7
0
ファイル: ISMState.cs プロジェクト: Link-SD/Kernmodule
 public Type TransistionCheck(ISmState state)
 {
     return(checkFunc(state));
 }