Ejemplo n.º 1
0
        public K GetState <K>() where K : StateMachineState
        {
            StateMachineState state = null;

            stateMap.TryGetValue(typeof(K), out state);
            return((K)state);
        }
Ejemplo n.º 2
0
 public void RegisterState(StateMachineState state)
 {
     if (!stateMap.ContainsKey(state.GetType()))
     {
         state.SetStateMachine(this);
         stateMap.Add(state.GetType(), state);
     }
 }
Ejemplo n.º 3
0
        public void ChangeState(System.Type type, StateParams stateParams = null)
        {
            if (stateMap.TryGetValue(type, out StateMachineState nextState))
            {
                StateMachineState prevState = currentState;

                currentState = nextState;

                if (prevState != null)
                {
                    prevState.Exit();
                }

                currentState.Enter(stateParams);

                OnStateChanged(prevState, nextState);
            }
            else
            {
                Debug.LogError("Tried to enter null state. This isn't supported");
            }
        }
Ejemplo n.º 4
0
 public void ChangeState(StateMachineState state, StateParams stateParams = null)
 {
     ChangeState(state.GetType(), stateParams);
 }