Ejemplo 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();
            }
        }
Ejemplo n.º 2
0
        public void EndState(State stateToEnd)
        {
            if (stateToEnd != null)
            {
                stateToEnd.OnExit_State();
            }

            if (stateToEnd is HighPriorityState)
            {
                HighPriorityState = null;
            }
            if (stateToEnd is StateForMechanics)
            {
                ActiveStateMechanic = null;
            }
            else if (stateToEnd is StateForMovement)
            {
                ActiveStateMovement = null;
            }
        }