- Home /
Enemy spawn
Hello I have a question. I´m making a zombie game were come different numbers of zombies in waves. The number of zombies I have in an array. And I have 9 different spawnpoints were they can spawn. My question is how can I spawn a wave of zombies were each is at a different spawnpoint?
how about keeping track of the spawn points in a list / array and just go through that and instantiate the zombies at those ?
List<GameObject> spanws ...
foreach(GameObject spawn in spawns) {
//instantiate a zombie at
... spawn.transform.position
}
Answer by Saad_Khawaja · Jul 31, 2014 at 01:33 AM
A simple solution would be (as touched upon by ShadoX) to create Lists of points.
Create two lists, one for the original spawn points - and one for the ones that have not been given to any zombie. The code is self explanatory:
List<Vector3> spawnPoints = new List<Vector3>();
List<Vector3> tmpSpawnPoints = new List<Vector3>();
void resetSpawnPoints()
{
tmpSpawnPoints.Clear();
foreach(Vector3 v in spawnPoints)
{
tmpSpawnPoints.Add(v);
}
}
Vector3 getRandomPointFromList()
{
if(tmpSpawnPoints.Count <= 0)
resetSpawnPoints();
int random = Random.Range(0,tmpSpawnPoints.Count);
Vector3 tmpPosition = tmpSpawnPoints[random];
tmpSpawnPoints.RemoveAt(random);
return tmpPosition;
}
Your answer
Follow this Question
Related Questions
FindObjectOfType with Variable 1 Answer
how to "search" for a spawn point 0 Answers
Multiple Spawn Points for fps character 1 Answer
Problems with spawnpoints 1 Answer
Prevent object from spawning at a spawn point twice in a row? 3 Answers