How to create an enemy wave system?


I want to create a FPS game where enemies spawn in waves… so the first wave there might be 2/3 enemies, second wave 5/6 enemies and so on, where the enemies also get harder.

I have created 3 times of enemies for now using cubes, spheres and cylinders

I have a system now where when you walk passed a certain area, enemies spawn from spawn points I have placed.

Can someone point me into the right direction on how to go about this spawn and wave system please. I have looked through numerous websites and youtube videos but Im not too sure how to do this. Im coding isnt very advanced

Here is my current code:
using UnityEngine;

using System.Collections;


public class EnemySpawnController : MonoBehaviour {


    public static EnemySpawnController Instance;


    public GameObject Enemy;

    public GameObject EnemyTwo;


    public float spawnArea = 1.5f;


void Awake() {

        Instance = this;




public void SpawnEnemies() {


    GameObject[] enemySpawnSystem = GameObject.FindGameObjectsWithTag("EnemySpawnPoint");

    //loop to create enemies

    int i = 0;


    foreach(GameObject spawnPoint in enemySpawnSystem)


        int noEnemies = Random.Range(1,4);

        for (int j= 0; j < noEnemies; j++)



                GameObject enemy;

                enemy = Instantiate(Enemy, new Vector3(spawnPoint.transform.position.x + Random.Range(-spawnArea, spawnArea), 

                                                       spawnPoint.transform.position.y + Random.Range(-spawnArea, spawnArea),

                                                       spawnPoint.transform.position.z + Random.Range(-spawnArea, spawnArea)),

                                                       spawnPoint.transform.rotation) as GameObject;

       = "Enemy"+i;






Take a look at THIS