- Home /
List what spawner enemy spawned from?
I have an enemy spawner(perfab) that has an internal count that will reach to a top number to stop spawning, when an enemy(prefab) is killed the count will go down so it can spawn more enemies. The problem is when I have multiple spawners, the count will only change on one of them. Is there a way I can get each enemy to list what spawner it came out of?
Can we see your spawn script? Is the script on a controlling object or on the spawners themselves?
the scrip is on the spawners.
void Spawn(){
spawnTimer -= Time.deltaTime;
if(Vector3.Distance(spawnerpoint.transform.position, Player.transform.position) <= 40f){
if(spawnTimer <= 0 && EnemyCounter < 6f){
Instantiate(Enemy, spawnerpoint.transform.position, spawnerpoint.transform.rotation);
EnemyCounter += 1;
}
}
}
Is there a reason you are using multiple spawners, and not one spawner using multiple spawn points? This way the spawner script would be the spawner manager, and you could run the whole distance-check-then-spawn in a loop for each spawn point in the spawn point array.
Currently need a spawner manager for all the scripts to report to (or a static variable, but you should really use one script with multiple points).
Also, I would suggest :
checking the spawn timer and enemy count before calculating a distance, as Distance is more processor intensive than checking variables
to make the distance calculation more optimal, use sqr$$anonymous$$agnitude
I cannot see where you reset the spawn timer
Answer by andytouch · Jul 18, 2013 at 01:19 PM
Like Alucardj said, it would be much more manageable to have one script that controls multiple spawners. That way you can control how many enemies have spawned from all of the spawn points, in one location.
Setup spawn points in scene (Empty GameObjects or whatever you are currently using)
Create an Array of Transforms called 'SpawnPoints'in a 'spawnManager' script that is attached to the Main Camera or a 'Manager' Empty GameObject.
Assign the spawn points as elements of the Array
You can then pick a spawn point from the array to spawn the enemy at; either by a random value or by independent selection.
Then, when you create an enemy, the counter will be true to how many enemies are in your scene.
Hope this helps!