Game structure: Time intervals, enemy speed, enemy quantity. How best to set this up?

Hi, my game currently has enemy spawners that endlessly run at a consistent speed. Enemies move from the left side of the screen to the right. There is no real variance in gameplay. So, I’ve decided to structure my game in waves. In these waves, I’d like to be able to have sliders to adjust A.) which enemies are available (there are three total classes), B.) how many of them there are / spawn density, and C.) their speed. I’d also like to be able to have controls to change the duration of these waves (seconds).

I’m new to C#, and I was wondering if anyone had any guidance for how I might be able to begin setting up this system so I can begin tweaking values to get the gameplay perfect.

Thank you!

I usually do not use C# but hopefully that will help you.
To set a limit to the (endlessly) running you need to set the waves first (so you can later on set the max and min value for the spawners at every wave).
For example (you need to translate the code because I do not have unity handy right now so I’m just writhing a simple example)

wave : integer;
currentwave : integer ;
spawnerquantity=50; //the quantity of enemies your spawner will spawn every wave
spawner =gameobject  ;//you will need to use the spawner gameobject in the inspector (or transform) from the scene (the one that spawns the enemies from the left to the right)
spawnerenemy = gameobject; //set the enemy in the inspect that the spawner will spawn
spawnerenemyhealth = int; //your spawner enemy health . I assume your spawner spawns enemies that have a health

void start ()
{
currentwave=1 //sets the current wave to 1 when game starts
}

void update ()
{
//here you will need to use a bit of the enemy variables (from the scripts that you already have) 
//I assume your enemies have got a health (like 100)
if (spawnerenemyhealth <=0 && wave==currentwave && spawnerquantity >=1) //if an enemy spawned is killed then decrease the spawnerquantity by 1 and destroy the gameobject (aka the enemy)
{
//destroy the enemy 
spawnerquantity = spawnerquantity -1;
}
else if (spawnerquantity ==0 && wave==currentwave)
{
wave=currentwave +1;
spawnerquantity=spawnerquantity+20; //adds 20 enemies to the next wave everytime a wave is finished
}

}

So that is the basic spawning and wave system (the code will not work , it’s just to give you an idea).
The speed and the kind of enemies available are simple to setup if you already have them. The speed needs to be set from your enemy script (like if wave=2 then speed =2) and the kinds of enemies are the same thing (if wave=2 then enemy2=true).

The density (or quantity) can be set in my script but you will have to play around with it.
Once again , sorry for the bad scripting haha (it’s just a fast-typed example)