Esempio n. 1
0
        public void EnterState(FSMStateType stateType)
        {
            if (_fsmStates.ContainsKey(stateType))
            {
                AbstractFSMState nextState = _fsmStates[stateType];

                EnterState(nextState);
            }
        }
Esempio n. 2
0
        public void EnterState(AbstractFSMState nextState)
        {
            if (nextState == null)
            {
                return;
            }
            if (currentState != null)
            {
                currentState.ExitState();
            }

            currentState = nextState;
            currentState.InitializeState(this, npc, navMeshAgent, ai_Input);
            currentState.EnterState();
        }
Esempio n. 3
0
        public void Awake()
        {
            currentState = null;
            ai_Input     = GetComponent <Ai_Input>();
            _fsmStates   = new Dictionary <FSMStateType, AbstractFSMState>();
            navMeshAgent = this.GetComponent <NavMeshAgent>();
            npc          = this.GetComponent <NPC>();
            navMeshAgent.updatePosition = false;
            navMeshAgent.updateRotation = false;

            foreach (AbstractFSMState state in _validStates)
            {
                _fsmStates.Add(state.StateType, state);
            }
        }