IEnumerator SpawnCD() { yield return(new WaitForSeconds(SpawnTimer)); if (wave == 1 && k == 0) { dead = 0; StartWave.SetActive(true); yield return(new WaitForSeconds(1)); sec--; yield return(new WaitForSeconds(1)); sec--; yield return(new WaitForSeconds(1)); StartWave.SetActive(false); sec = 3; yield return(new WaitForSeconds(0.5f)); nextwave.SetActive(true); yield return(new WaitForSeconds(2)); nextwave.SetActive(false); } switch (wave) { case 1: spawnmob = 6; if (dead < spawnmob) { for (int i = 0; i < 4; i++) { int number1 = Random.Range(0, 8); int Enemyn = Random.Range(1, 4); if (Enemyn == 1) { Instantiate(Enemy1, spawnPos[number1].position, Quaternion.identity); } if (Enemyn == 2) { Instantiate(Enemy2, spawnPos[number1].position, Quaternion.identity); } if (Enemyn == 3) { Instantiate(Enemy3, spawnPos[number1].position, Quaternion.identity); } yield return(new WaitForSeconds(0.3f)); } } if (dead >= spawnmob) { do { yield return(new WaitForSeconds(2f)); } while (dead != k); wave++; nextwave.SetActive(true); yield return(new WaitForSeconds(2)); nextwave.SetActive(false); k = 0; PlayerPrefs.SetInt("kolvo", k); Enemy.dead = 0; spawnmob = 10; break; } break; case 2: if (dead < spawnmob) { for (int i = 0; i < 4; i++) { int number1 = Random.Range(0, 8); int Enemyn = Random.Range(1, 4); if (Enemyn == 1) { Instantiate(Enemy1, spawnPos[number1].position, Quaternion.identity); } if (Enemyn == 2) { Instantiate(Enemy2, spawnPos[number1].position, Quaternion.identity); } if (Enemyn == 3) { Instantiate(Enemy3, spawnPos[number1].position, Quaternion.identity); } yield return(new WaitForSeconds(0.3f)); } } if (dead >= spawnmob) { do { yield return(new WaitForSeconds(2f)); } while (dead != k); wave++; nextwave.SetActive(true); yield return(new WaitForSeconds(2)); nextwave.SetActive(false); k = 0; PlayerPrefs.SetInt("kolvo", k); Enemy.dead = 0; spawnmob = 12; } break; case 3: if (dead < spawnmob) { for (int i = 0; i < 4; i++) { int number1 = Random.Range(0, 8); int Enemyn = Random.Range(1, 4); if (Enemyn == 1) { Instantiate(Enemy1, spawnPos[number1].position, Quaternion.identity); } if (Enemyn == 2) { Instantiate(Enemy2, spawnPos[number1].position, Quaternion.identity); } if (Enemyn == 3) { Instantiate(Enemy3, spawnPos[number1].position, Quaternion.identity); } yield return(new WaitForSeconds(0.3f)); } } if (dead >= spawnmob) { do { yield return(new WaitForSeconds(2f)); } while (dead != k); wave++; k = 0; PlayerPrefs.SetInt("kolvo", k); Enemy.dead = 0; compl.SetActive(true); yield return(new WaitForSeconds(2)); compl.SetActive(false); Teleport1.SetActive(true); StopCoroutine(SpawnCD()); break; } break; } if (wave < 4) { Repeat(); } else { wave = 0; Base.SetActive(true); Base1.SetActive(false); spawner.SetActive(false); } }