- 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
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