private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int i = 0; i < waveConfig.GetNumberOfEnemies(); i++) { var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, Quaternion.identity ); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetEnemyNumber(); enemyCount++) { //each enemy created will be stored to new enemy var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, Quaternion.identity); //pass in the waveconfig in this script to EnemyPathing newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBtwnSpawns())); } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, Quaternion.identity); newEnemy.transform.SetParent(GameObject.FindGameObjectWithTag("EnemyArea").transform, false); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig currentWave) { for (int enemyCount = 0; enemyCount < currentWave.GetNumberOfEnemies(); enemyCount++) { var newEnemy = Instantiate( currentWave.GetEnemyPrefab(), currentWave.GetWaypoints()[0].transform.position, Quaternion.identity ); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(currentWave); yield return(new WaitForSeconds(currentWave.GetTimeBetweenSpawns())); } }
// Coroutine that spawns all enemies in a single wave private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { // Spawns an enemy var newEnemyWave = Instantiate(waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, Quaternion.identity); // Make it follow it's wave path newEnemyWave.GetComponent <Pathing>().SetWaveConfig(waveConfig); // Wait it's wave TimeBetweenSpawns to spawn another enemy in the same wave yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
IEnumerator SpawnAllWaves() { //using a for loop to go through all of the waves found in our list for (int waveIndex = startingWave; waveIndex < waveConfigs.Count; waveIndex++) { WaveConfig currentWave = waveConfigs[waveIndex]; /* Calling a StartCoroutine from yield return would ensure synchronous running of the execution * of multiple calls for the SpawnAllEnemiesInWave. Without this synchronous concept, all * of the groups would be generated together. */ yield return(StartCoroutine(SpawnAllEnemiesInWave(currentWave))); } }
private void SpawnCluster(WaveConfig waveConfig) { //spawns all enemies in the wave at once in a circular cluster shape for (int i = 0; i < waveConfig.NumberOfEnemies(); i++) { //Get a random normalized direction so that the cluster shape is circular instead of a square. var randomLocation = new Vector3(UnityEngine.Random.Range(-1f, 1f), UnityEngine.Random.Range(-1f, 1f)).normalized; //Get random radius from 0 to the max radius in the waveconfig. this will make the enemies spawn anywhere within the max radius. var spawnLocation = spawnPoints[waveConfig.SpawnPoint()].transform.position + randomLocation * UnityEngine.Random.Range(0, waveConfig.ClusterRadius()); Instantiate(waveConfig.EnemyPrefab(), spawnLocation, waveConfig.EnemyPrefab().transform.rotation); } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { GameObject enemyObject = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[enemyCount].transform.position, Quaternion.identity ); enemyObject.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
//This Coroutine spawns all of the enemies in the wave that it is passed private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { //Creates an instances of the enemy based on the parameters passed. var newEnemy = Instantiate(waveConfig.GetEnemyPrefab(), waveConfig.GetWayPoints()[0].transform.position, Quaternion.identity); //Sets the wave config in EnemyPathing.cs newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); //Yields based on the time between spawns in the waveconfig yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
private IEnumerator SpawnWaveEnemies(WaveConfig theConfig) { for (int i = 0; i < theConfig.GetNumberOfSpawns(); i++) { var currentEnemy = Instantiate(theConfig.GetEnemyPrefab(), theConfig.GetPathWaypoints()[0].transform.position, Quaternion.identity); //this way we control wave settings in the waveconfigs (Assets/Waves/waveconfigs) //rather than variables in the scripts. currentEnemy.GetComponent <EnemyPathing>().SetWaveConfig(theConfig); yield return(new WaitForSeconds(theConfig.GetTimeBetweenSpawn())); } }
private IEnumerator SpawnWaveEnemies(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].position, Quaternion.Euler(0, 0, 180)); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
private IEnumerator LaunchWaves() { for (int i = levelConfigs[currentLevelIndex].startingWaveIndex; i < waveConfigs.Length; i++) { var waveConfig = waveConfigs[i]; currentWaveConfig = waveConfig; ++WaveNumber; StartCoroutine(nameof(LaunchWave)); ChangeListener(new WaveStarted()); yield return(new WaitForSeconds(levelConfigs[currentLevelIndex].secondsBetweenWaves + waveConfig.numEnemies * waveConfig.secondsBetweenEnemies)); } StartCoroutine(nameof(EndWhenAllEnemiesAreGone)); }
// Start is called before the first frame update private IEnumerator SpawnAllEnemyInWave(WaveConfig waveConfig, int waveIndex) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { var newEnemy = Instantiate(waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[startingWave].transform.position, Quaternion.identity); newEnemy.GetComponent <EnemyPath>().SetWaveConfig(waveConfig); Enemy targetEnemy = newEnemy.GetComponent <Enemy>(); patternController.AddToCollection(enemyCount, waveIndex, targetEnemy); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpwan())); } }
} // IEnumerator SpawnAllWaves() /*** * This coroutine spawns all enemies in a wave. ***/ private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { Debug.Log("Starting wave " + waveConfig.name); waveConfig.BuildShips(); for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { Debug.Log("Spawning enemy #" + enemyCount + " for " + waveConfig.name); var newEnemy = waveConfig.GetEnemyShip(enemyCount); newEnemy.transform.position = waveConfig.GetWaypoints()[0].transform.position; newEnemy.GetComponent<EnemyPathing>().SetWaveConfig(waveConfig); level.AddEnemy(); yield return new WaitForSeconds(waveConfig.GetTimeBetweenSpawns()); } // for } // IEnumerator SpawnAllEnemiesInWave()
private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveToSpawn) { for (int obstacleCount = 1; obstacleCount <= waveToSpawn.GetNoOfObstacles(); obstacleCount++) { var newObst = Instantiate( waveToSpawn.GetObstaclePrefab(), waveToSpawn.GetWaypointsList()[0].transform.position, Quaternion.identity) as GameObject; newObst.GetComponent <ObstaclePathing>().SetWaveConfig(waveToSpawn); yield return(new WaitForSeconds(waveToSpawn.GetTimeBetweenSpawns())); } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig currentWave) { for (int i = 0; i < currentWave.NumberOfEnemies; i++) { var newEnemy = Instantiate( currentWave.EnemyPrefab, currentWave.GetPathWaypoints().First().transform.position, Quaternion.identity); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(currentWave); yield return(new WaitForSeconds(currentWave.TimeBetweenSpawns)); } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int index = 0; index < waveConfig.GetNumberOfEnemies(); ++index) { var newEnemy = Instantiate(waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].position, Quaternion.identity); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns() + Random.Range(0, waveConfig.GetSpawnRandomFactor()))); } }
private void waveEndStuff() { if (waves.Count > currentWaveIndex + 1) { previousWave = currentWave; currentWaveIndex++; currentWave = waves[currentWaveIndex]; phase = SpawnPhase.Spawning; } else { //end } }
/* * Coroutine that spwns all the enemy in a wave */ private IEnumerator SpawnAllEnemyInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { //object to instantiate, position and rotation var newEnemy = Instantiate(waveConfig.GetEnemyPrefab(), waveConfig.GetWayPoints()[0].transform.position, Quaternion.identity); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
IEnumerator spawnAllWaveEnemies(WaveConfig waveConfig) { var numOfEnemies = waveConfig.getNumOfenemies(); for (int i = 0; i < numOfEnemies; ++i) { List <Transform> wayPoints = waveConfig.getWayPoints(); var newEnemy = Instantiate(waveConfig.getEnemyPrefab(), new Vector3(), Quaternion.Euler(0, 0, 270)); newEnemy.GetComponent <EnemyPathing>().setWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.gettimeBetweenSpawns())); } }
private IEnumerator SpawnAllObjectsInWave(WaveConfig waveToSpawn) { for (int objectCount = 1; objectCount <= waveToSpawn.GetNumberOfObstacles(); objectCount++) { var newEnemy = Instantiate( waveToSpawn.GetEnemyPrefab(), waveToSpawn.GetWaypoints()[0].transform.position, Quaternion.identity); newEnemy.GetComponent <ObstaclePathing>().SetWaveConfig(waveToSpawn); yield return(new WaitForSeconds(waveToSpawn.GetTimeBetweenSpawns())); } }
private IEnumerator SpawnAllEnemies(WaveConfig waveConfig) { for (var enemycount = 0; enemycount < waveConfig.GetNumberOfEnemies(); enemycount++) { var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, waveConfig.GetEnemyPrefab().transform.rotation ); Debug.Log(newEnemy.transform.rotation); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
private IEnumerator SpawnWaveEnemies(WaveConfig currWave) { for (var i = 0; i < currWave.GetNumberOfEnemies(); i++) { var newEnemy = Instantiate ( currWave.GetEnemyPrefab(), currWave.GetWaypoints()[0].transform.position, currWave.GetEnemyPrefab().transform.rotation ); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(currWave); yield return(new WaitForSeconds(currWave.GetTimeBetweenSpawns())); } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig wave) { for (int i = 0; i < wave.enemyQuantity; i++) { var enemy = Instantiate( wave.EnemyPrefab, wave.WaveWaypoints[0].transform.position, Quaternion.identity ); enemy.GetComponent <EnemyPathing>().SetWaveConfig(wave); yield return(new WaitForSeconds(wave.timeBetweenSpawns)); } }
private IEnumerator SpawnAllEnemies(WaveConfig waveConfig) { int numberOfEnemy = waveConfig.GetEnemyNumber(); for (int enemyCount = 1; enemyCount <= numberOfEnemy; enemyCount++) { var enemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, Quaternion.identity ); enemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(Random.Range(waveConfig.GetSpawnInterval(), waveConfig.GetRandomer()))); } }
private IEnumerator SpawnEnemies(WaveConfig waveConfig) { yield return(new WaitForSeconds(waveConfig.GetStartSpawningTime())); for (int i = 0; i < waveConfig.GetNumberOfEnemies(); i++) { var enemy = Instantiate(waveConfig.GetEnemyPrefab(), waveConfig.GetWaypoints()[0].transform.position, Quaternion.Euler(0, 0, 90)); enemy.GetComponent <EnemyPath>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } }
/// <summary> /// Coroutine called to spawn all the enemies in a given wave /// </summary> /// <param name="waveConfig">The wave configuration containing the enemy data</param> /// <returns></returns> private IEnumerator SpawnEnemiesInWave(WaveConfig waveConfig) { for (int i = 0; i < waveConfig.EnemyCount; i++) { // Instantiate a new enemy var newEnemy = Instantiate(original: waveConfig.EnemyPrefab, position: waveConfig.GetWaypoints()[0].transform.position, rotation: Quaternion.identity); // Get the script component of the newly instantiated enemy and associate the wave config with it newEnemy.GetComponent <EnemyPathing>().WaveConfig = waveConfig; yield return(new WaitForSeconds(waveConfig.SpawnSpeed)); } }
public IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { if (FindObjectOfType <Boss>().BossAlive() == true) { var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), GameObject.Find("Boss").transform.position, Quaternion.identity); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); } } }
private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = startingWave; enemyCount < waveConfig.NumberOfEnemies; enemyCount++) { var newEnemy = Instantiate( waveConfig.EnemyPrefab, waveConfig.GetWaypoints()[0].transform.position, Quaternion.identity ); newEnemy.GetComponent <EnemyPathing>().WaveConfig = waveConfig; yield return(new WaitForSeconds(waveConfig.TimeBetweenSpawns)); } yield return(new WaitForSeconds(delayBetweenWaves)); }
private IEnumerator SpawnEnemies(WaveConfig currentWave) { for (int i = 0; i < currentWave.GetNumberOfEnemies(); i++) { GameObject enemy = Instantiate( currentWave.GetEnemyPrefab(), currentWave.GetWaypoints()[0].position, Quaternion.identity ); enemy.GetComponent <EnemyPathing>().SetWaveConfig(currentWave); yield return(new WaitForSeconds(currentWave.GetSpawnCooldown())); } }