Spawn objects in burst of three?

Hey everyone, so I’m going to have a boss level and I want it to shoot once but in bursts of three. Similar to that of a burst gun in FPS games. I want the boss (enemy) to spawn three shots in like a second and then wait like 5 seconds and do it again. I have it so that it spawns once every five seconds, but I don’t know how to get it to due bursts of three or more. My the script spawns only one object every five seconds right now. Below is what I have so far for my spawning script to spawn one thing every five seconds. Thanks for any and all help. My game is in 2D by the way, if that matters. PS: I think that I have to use a courotine or the IEnumerator thing, but I’m not really familiar with that. Thanks
using UnityEngine;
using System.Collections;

public class Spawner : MonoBehaviour
{
public float spawnTime = 5f; // The amount of time between each spawn.
public float spawnDelay = 3f; // The amount of time before spawning starts.
public GameObject enemies; // Array of enemy prefabs.

void Start ()
{
	// Start calling the Spawn function repeatedly after a delay .
	InvokeRepeating("Spawn", spawnDelay, spawnTime);
}

void Spawn ()
{
	// Instantiate a random enemy.
	int enemyIndex = Random.Range(0, enemies.Length);
	Instantiate(enemies[enemyIndex], transform.position, transform.rotation);

	// Play the spawning effect from all of the particle systems.
	foreach(ParticleSystem p in GetComponentsInChildren<ParticleSystem>())
	{
		p.Play();
	}
}

}

You can use a coroutine (note that I’ve added “spawnCount” property to your class to set how many instances you want to spawn):

using System.Collections;
using UnityEngine;

public class Spawner : MonoBehaviour
{
    public int spawnCount = 3; // The number of spawned objects.
    public float spawnTime = 5f; // The amount of time between each spawn.
    public float spawnDelay = 3f; // The amount of time before spawning starts.
    public GameObject[] enemies; // Array of enemy prefabs.

    void Start()
    {
        // Start calling the Spawn function repeatedly after a delay .
        StartCoroutine(Spawn());
    }

	void OnDestroy()
	{
        StopAllCoroutines();
	}

	IEnumerator Spawn()
    {
        // Initial delay
        yield return new WaitForSeconds(spawnDelay);

        while (true)
        {
            // Calculate how much it should wait to spawn the instances in 1s
            float waitForNext = 1f / spawnCount;
            for (int i = 0; i < spawnCount; i++)
            {
				// Instantiate a random enemy.
                int enemyIndex = Random.Range(0, enemies.Length);
                Instantiate(enemies[enemyIndex], transform.position, transform.rotation);
                // Wait for the next instance spawn
                yield return new WaitForSeconds(waitForNext);
            }

            // Play the spawning effect from all of the particle systems.
            foreach (ParticleSystem p in GetComponentsInChildren<ParticleSystem>())
            {
                p.Play();
            }

            // Wait for the next cycle of spawns
            yield return new WaitForSeconds(spawnTime);
        }
    }
}