コード例 #1
0
    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;
    }
コード例 #2
0
    private void Start()
    {
        //Set up state machine
        Dictionary<StateType, BaseState> stateMachineDictionary = new Dictionary<StateType, BaseState>();
        foreach (StateType state in StateTypes)
        {
            stateMachineDictionary.Add(state, StateFactory.CreateBaseState(state, this));
        }
        stateMachine = new StateMachine(stateMachineDictionary);

        //Check for NavMeshAgent
        NavMeshAgent = GetComponent<NavMeshAgent>();
        CanMove = NavMeshAgent != null;

        if (CanMove)
        {
            NavMeshAgent.updateRotation = false;
            NavMeshAgent.acceleration = enemyMovementData.NavMeshAcceleration;
            NavMeshAgent.angularSpeed = enemyMovementData.NavMeshAngularSpeed;
            NavMeshAgent.speed = enemyMovementData.NavMeshVelocity;
        }
    }