How to make an turn based Wave System?

I want to make an enemy spawn system like this:

  • Spawn the first wave
  • If the first wave got killed spawn the second wave.
  • If the second wave got killed spawn a boss.
  • If the boss got killed go to the next scene (Victory screen for example)

How can i do this?
The only thing that worked for me was an endless wave system but its not what I want :confused: Thank you for your help :slight_smile:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Spawner : MonoBehaviour
{
    public float spawnWait;
    public float startWait;
    public float waveWait;

    public int waveCount;

    public GameObject[] spawnPoints;
    public GameObject enemy;
    public GameObject enemy2;

    private void Start()
    {
        StartCoroutine(SpawnEnemy());

        spawnPoints = new GameObject[4];
        for(int i = 0; i < spawnPoints.Length; i++)
        {
            spawnPoints *= transform.GetChild(i).gameObject;*

}
}

IEnumerator SpawnEnemy()
{
while (true)
{
for (int i = 0; i < waveCount; i++)
{
yield return new WaitForSeconds(spawnWait);
int spawnerID = Random.Range(0, spawnPoints.Length);
Instantiate(enemy, spawnPoints[spawnerID].transform.position, spawnPoints[spawnerID].transform.rotation);
Instantiate(enemy2, spawnPoints[spawnerID].transform.position, spawnPoints[spawnerID].transform.rotation);
yield return new WaitForSeconds(spawnWait);
}
}
}
}

just create an int for waveSize, that is how many enemies you will create, then you can use another int enemiesKilled, then when enemiesKilled==waveSize then all enemies have been destroyed and you can call the next wave or boss, whateverโ€ฆ you can keep track of that with another int waveNumber.