private void Start() { //Set up state machine Dictionary <EnemyAIStateType, BaseState> stateMachineDictionary = new Dictionary <EnemyAIStateType, BaseState>(); foreach (EnemyAIStateType state in EnemyStates) { stateMachineDictionary.Add(state, StateFactory.CreateBaseState(state, this)); } stateMachine = new EnemyAIStateMachine(stateMachineDictionary); TargetDestination = null; enemyController = GetComponent <Enemy>(); MovementData = (EnemyMovementData)enemyController.GetFiringData(); navMeshAgent = GetComponent <NavMeshAgent>(); //navMeshAgent.updateRotation = false; navMeshAgent.acceleration = MovementData.NavMeshAcceleration; // 8; //enemy navMeshAgent.angularSpeed = MovementData.NavMeshAngularSpeed; //120; // enemy navMeshAgent.speed = MovementData.NavMeshVelocity; //3; // //Events enemyController.UpdateTargetedPlayer += EnemyController_UpdateTargetedPlayer; bulletDetector.AddDangerousBullet += BulletDetector_AddDangerousBullet; }
private void Initialization() { EnemyStatePatrolling = GetComponent <EnemyStatePatrolling>(); EnemyStateFighting = GetComponent <EnemyStateFighting>(); EnemyAIStateMachine = EnemyStatePatrolling; EnemyAIStateMachine.SeekingBattle(this); }
public void DecideWhatToDo() { GameObject focusTarget = CharacterPresenter.CharacterType.SearchingTarget(); if (focusTarget == null) { EnemyAIStateMachine.SeekingBattle(this); } else { EnemyAIStateMachine.Fighting(this, focusTarget); } }
private protected override Vector2 GetInputVector() { return(EnemyAIStateMachine.GetInputVector(this)); }