예제 #1
0
 public virtual void SetExecutingFsmEnemy(FsmEnemy fsmEnemy)
 {
     if (fsmEnemy != null)
     {
         _fsmEnemy = fsmEnemy;
     }
 }
예제 #2
0
        public void Awake()
        {
            _currentState = null;

            _fsmStates = new Dictionary <FSMStateType, AbstractFSMState>();

            NavMeshAgent navMeshAgent = GetComponent <NavMeshAgent>();
            FsmEnemy     fsmEnemy     = GetComponent <FsmEnemy>();
            Transform    player       = GameObject.Find("Player").transform;

            foreach (AbstractFSMState state in _validStates)
            {
                state.SetExecutingFSM(this);
                state.SetExecutingFsmEnemy(fsmEnemy);
                state.SetNavMeshAgent(navMeshAgent);
                state.SetExecutingPlayer(player);
                _fsmStates.Add(state.StateType, state);
            }
        }