How to get out of a for loop after a number of child objects have been Instantiated

So I’m trying to get a certain number of enemies to spawn for each wave. I’m doing this by Instantiating an the enemy into a parent object. I can get the number of child objects but I can’t get it to stop instantiating.

if(Nwave == 1 ){

			wave.text = "Vaccine Injected, Pathogens found: 4";

			for(int i = 0; i < spawn.Length; i++){

				GameObject clone;
				clone = Instantiate(enemy, spawn*, Quaternion.identity) as GameObject;*
  •  		clone.gameObject.FindParentAndAttach("Enemies");*
    
  •  		if(parentEnemy.transform.childCount >= 4){*
    
  •  			return;*
    
  •  		}*
    
  •  	}*
    
  •  }*
    

You’re in the for loop as long as i is less than spawn.Length. You apparently only want it in there for 4 iterations, so you could do i <= 4;

I’d seriously consider trying to make your wave spawning much easier to do. If you have 100 waves will you have 100 sections of code that long? (I’ve made this mistake before!)

FreeTimeDev is correct about your wave issue. If you are only going to have 3 waves, this is fine but if you are going to have 100 waves, you current code would be silly dirty.

As far as getting out of the loop, you, you can consider to things:

1, currently, spawn.Length is what keeps you in the loop, so you could say

for(int i = 0 ; parentEnemey.transform.childCount < 4 ; i ++ ){
  
}

or you could just break out of a loop using

for(int i = 0; i < Spawn.Length; i ++){
 if(parentEnemy.transform.childCount >= 4){
 
                   break;
                 }
}