How do I fix yield not working in while loop?

I get no console errors, but all of them isntantiate at the same time, so they are all one unit, and I want a delay between their spawn. (they are enemies traveling a path)

#pragma strict

// Instantiate a rigidbody then set the velocity
var projectile : Transform;
var cnt : int = 0;

function Update () {
if (buttonFeatures.started) {
	while (cnt < 4) {
			// Instantiate the projectile at the position and rotation of this transform
		wait();
		var clone : Transform;
		clone = Instantiate(projectile, transform.position, transform.rotation);
		cnt++;
		} 
	}
}
	
	function wait(){
        yield WaitForSeconds (10);
    }

Hello !

The problem is that the coroutine is within the while loop. The loop will start 4 wait() coroutines, and four of them will then wait ten seconds. For you to see how this works, try adding a print("wait complete"); line in the wait() function after the yield; you will get 4 “wait complete” messages in your console.

Cheers !