i have a list of transforms and i want to spawn a prefab once for all the transforms in the list.
as above but i just can seem to get this working at all! sorry if the question is structured bad in advance, its my first post.
if i have:
//generated on start
int numAliens;
//generated on start. a list of the desired spawn locations
public List<Vector3> AlienPos = new List<Vector3>();
//the prefabbed alien . i hope to make this an array of multiple prefabs at some point
public GameObject AlienPrefab;
//respawn all enemys
void rePopWave(){
while(numAliens > 0) {
numAliens++;
//Instantiate(AlienPrefab, AlienPos[numAliens], Quaternion.identity);
Debug.Log ("THEY ARE BACK");
}
}
Answer by Static-Dynamo · Jun 03, 2016 at 01:39 AM
Your while loop is never going to end. The check while(numAliens>0) will always be true as long as you have any aliens. Especially since every time the loop goes it adds 1 to numAliens, meaning it will always be positive. So the while loop goes forever.
A solution would be to restructure it like this
//generated on start
int numAliens = 0;
//generated on start. a list of the desired spawn locations
public List<Vector3> AlienPos = new List<Vector3>();
//the prefabbed alien . i hope to make this an array of multiple prefabs at some point
public GameObject AlienPrefab;
//respawn all enemys
void rePopWave(){
while(numAliens < AlienPos.Count) {
numAliens++;
Instantiate(AlienPrefab, AlienPos[numAliens], Quaternion.identity);
Debug.Log ("THEY ARE BACK");
}
}
Eventually the numAliens will be greater than AlienPos.Count (which is the size of the list) and when that happens the while loop will stop and your aliens should all be created.
thanks for the fast reply! this did the trick for me, just getting an argument out of range error but i can fix that :D
Your answer
Follow this Question
Related Questions
Spawn in a different and random Spawn point from a list 0 Answers
How Can Storage Be Done If Unity Deletes Or Duplicates Gameobjects? 0 Answers
How does one continuously move an object forward without using velocity? 1 Answer
Instantiate a Prefab along the surface of a sphere. C# 0 Answers
Destroy attached shield to player (C#) 2 Answers