// Spawn the enemies in the associated wave config private IEnumerator SpawnEnemiesInWave(WaveScriptableObject waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, Quaternion.identity); newEnemy.GetComponent <EnemyController>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetEnemySpawnRate())); } }
public void StartWave() { if (waveIndex >= 0 && waveIndex < endlessModeWaves.Length) { friendlySpawns = 0; currentWave = endlessModeWaves[waveIndex]; int enemiesCount = 0; foreach (GroupScriptableObject group in currentWave.Groups) { enemiesCount += group.walkerPattern.Length * group.patternRepeatTime; } numberOfEnemiesInWave = enemiesCount; enemiesDeadOrDestroyed = 0; waveIndex++; groupIndex = 0; timesPaternRepeated = 0; patternIndex = 0; waveStarted = true; } }
// Set WaveConfig public void SetWaveConfig(WaveScriptableObject waveConfig) { this.waveConfig = waveConfig; }