- Home /
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[i], Quaternion.identity) as GameObject;
clone.gameObject.FindParentAndAttach("Enemies");
if(parentEnemy.transform.childCount >= 4){
return;
}
}
}
Answer by FreeTimeDev · Jan 02, 2015 at 08:22 PM
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!)
Answer by Anxo · Jan 02, 2015 at 08:35 PM
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;
}
}
Your answer
Follow this Question
Related Questions
How to delete objects of a parent and then instantiate a new one? 1 Answer
instanstiate Spawns more then one objec 0 Answers
Spawn from array 2 Answers
Instantiating prefab at child (spawnlocations are arrays) 2 Answers
Spawner with max enemies 2 Answers