-
I want to make my wave spawner better so the amount of enemies goes up in a curve instead of how it is right now(+1 enemy per wave), how do i do this? ps: i dont want to make it like, twice as much as the previous wave becuase that would be WAYYYYYYY too hard way too fast
-
i want my wave spawner to have multiple enemies without me having to manually make every single wave. how can i achieve something like this where i can just put in a spawn rate percentage then say, there is a 30% chance to spawn this enemy
how do i do these two things? also im kinda beginner at scripting so idk how to use dictionaries and cases and stuff like that
heres wave spawner script
using UnityEngine;
using System.Collections;
public class WaveSpawner : MonoBehaviour
{
public GameObject enemyPrefab;
private int enemyCount;
private int waveNumber = 1;
public float timeBetweenEnemySpawn;
public float timeBetweenWaves;
public Transform[] spawnPoints;
bool spawningWave;
// Start is called before the first frame update
void Start()
{
StartCoroutine(SpawnEnemyWave(waveNumber));
}
// Update is called once per frame
void Update()
{
enemyCount = FindObjectsOfType<Enemy>().Length;
if (enemyCount == 0 && !spawningWave)
{
waveNumber++;
StartCoroutine(SpawnEnemyWave(waveNumber));
}
}
IEnumerator SpawnEnemyWave(int enemiesToSpawn)
{
spawningWave = true;
yield return new WaitForSeconds(timeBetweenWaves); //We wait here to pause between wave spawning
for (int i = 0; i < enemiesToSpawn; i++)
{
Instantiate(enemyPrefab, spawnPoints[Random.Range(0, spawnPoints.Length)].position, enemyPrefab.transform.rotation);
yield return new WaitForSeconds(timeBetweenEnemySpawn); //We wait here to give a bit of time between each enemy spawn
}
spawningWave = false;
}
}