Quantcast
Channel: Questions in topic: "findgameobjectswithtag"
Viewing all articles
Browse latest Browse all 230

How to get if all all objects are destroyed to start another wave

$
0
0
I am making a simple shooter. I want the following: to keep track of current enemies. if there are no enemies I want to start the new wave. My game controller code currently looks like this: using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameController : MonoBehaviour { public GameObject[] Bosses; public GameObject[] Enemies; public int EnemyCount = 3; public float SpawnWait = 0.1f; public float StartWait = 1f; public float WaveWait = 1f; private float waveNumber = 1; void Start () { StartCoroutine(SpawnWaves()); } private IEnumerator SpawnWaves() { yield return new WaitForSeconds(StartWait); while (true) { Debug.Log("Starting Wave"); if (GameObject.FindGameObjectWithTag("Enemy") != null) continue; if (waveNumber % 3 == 1 && waveNumber > 1) { Debug.Log("Sending New Enemy"); float spawnCoordY = Random.Range(-4, 4); Vector2 spawnPosition = new Vector2(5, spawnCoordY); System.Random random = new System.Random(); int enemyToSpawnIndex = random.Next(0, Bosses.Length); GameObject currentEnemy = Instantiate(Bosses[enemyToSpawnIndex], spawnPosition, Quaternion.identity); } else { for (int i = 0; i < EnemyCount; i++) { float spawnCoordY = Random.Range(-4, 4); Vector2 spawnPosition = new Vector2(5, spawnCoordY); System.Random random = new System.Random(); int enemyToSpawnIndex = random.Next(0, Enemies.Length); GameObject currentEnemy = Instantiate(Enemies[enemyToSpawnIndex], spawnPosition, Quaternion.identity); yield return new WaitForSeconds(SpawnWait); } EnemyCount += 2; } waveNumber++; yield return new WaitForSeconds(WaveWait); } } } As you can see, I check if all enemies have been destroyed by seeking for enemy with tag and if no enemy is found I start next wave. For unspecified reason it has some problems. Sometimes it freezes the game (and the editor itself). I know the problem is there because when I comment out that line it works well. Please tell me what is the main problem of it ? and also if there is a better practice of doing what I want do not hesitate to also tell it to me.

Viewing all articles
Browse latest Browse all 230

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>