コード例 #1
0
    private IEnumerator SpawnAllEnemiesInWave(WaveConfigurator waveConfigurator)
    {
        var numberOfEnemiesInWave = waveConfigurator.GetNumberOfEnemies();

        for (int i = 0; i < numberOfEnemiesInWave; i++)
        {
            var newEnemy = Instantiate(
                waveConfigurator.GetEnemyPrefab(),
                waveConfigurator.GetWaypoints()[0].transform.position,
                waveConfigurator.GetEnemyPrefab().transform.rotation);
            newEnemy.GetComponent <Enemy>().SetWaveConfig(waveConfigurator);
            yield return(new WaitForSeconds(waveConfigurator.GetTimeBetweenSpawns()));
        }
    }
コード例 #2
0
 // When the enemy is spawned, pull all the settings from the WaveConfigurator for the current wave
 public void SetWaveConfig(WaveConfigurator waveConfig)
 {
     this.waveConfigurator = waveConfig;
     waypoints             = waveConfigurator.GetWaypoints();
     transform.position    = waypoints[0].transform.position;
     enemyHealth           = waveConfigurator.GetEnemyHealth();
     collisionDamage       = waveConfigurator.GetEnemyCollisionDamage();
     turningSpeed          = waveConfigurator.GetEnemyTurningSpeed();
     firingSpeed           = waveConfigurator.GetEnemyFiringSpeed();
     enemyIsAimer          = waveConfigurator.GetEnemyAimer();
     aimingSpeed           = waveConfigurator.GetEnemyAimingSpeed();
     projectileSpeed       = waveConfigurator.GetEnemyProjectileSpeed();
     projectileDamage      = waveConfigurator.GetEnemyProjectileDamage();
     projectilePrefab      = waveConfigurator.GetEnemyProjectilePrefab();
     scoreValue            = waveConfigurator.GetEnemyScoreValue();
     playerObject          = GameObject.Find("Player").gameObject;
     gameSession           = GameObject.Find("GameSession").gameObject.GetComponent <GameSession>();
     GetComponentInChildren <EnemyWeapon>().SetEnemyWeapon(waveConfig);
     GetComponent <DamageDealer>().SetDamage(collisionDamage);
 }