- Home /
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 :/ Thank you for your help :)
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[i] = 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);
}
}
}
}
Answer by logicandchaos · Apr 19, 2020 at 04:26 PM
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.
Your answer
![](https://koobas.hobune.stream/wayback/20220612231854im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
3D Object Jump Glitch 0 Answers
Best Way To Handle Multiple Moves (Like Pokemon)? 2 Answers
Problem with enemy rotation 1 Answer
First person dash advice 0 Answers