Esempio n. 1
0
        public void ForceSwapState(State newState)
        {
            Debug.Log("Swap state");

            if (newState is HighPriorityState)
            {
                if (HighPriorityState != null)
                {
                    HighPriorityState.OnExit_State();
                }
                HighPriorityState = (HighPriorityState)newState;
                HighPriorityState.OnEnter_State();
            }
            if (newState is StateForMechanics)
            {
                if (ActiveStateMechanic != null)
                {
                    ActiveStateMechanic.OnExit_State();
                }
                ActiveStateMechanic = (StateForMechanics)newState;
                ActiveStateMechanic.OnEnter_State();
            }
            else if (newState is StateForMovement)
            {
                if (ActiveStateMovement != null)
                {
                    ActiveStateMovement.OnExit_State();
                }
                ActiveStateMovement = (StateForMovement)newState;
                ActiveStateMovement.OnEnter_State();
            }
        }
Esempio n. 2
0
 // Update is called once per frame
 void FixedUpdate()
 {
     if (HighPriorityState != null)
     {
         HighPriorityState.WhileActive_State();
     }
     else
     {
         if (ActiveStateMechanic != null)
         {
             ActiveStateMechanic.WhileActive_State();
         }
         if (ActiveStateMovement != null)
         {
             ActiveStateMovement.WhileActive_State();
         }
     }
 }