Adding Random Spawn Locations as Array
Hey all,
I'm trying to add Random Spawn locations as an Array to this code instead of the x and z Ranges. I've been successful in getting them to spawn using a SpawnLocations array but when I substitute in to my code to replace the spawnPos int my game goes glitchy and I have split second spawns in random locations as well as my selected Spawn Points.
Any help would be massively appreciated.
{ public GameObject[] enemies; public GameObject powerup;
private float zEnemySpawn = 80.0f;
private float xSpawnRange = 80.0f;
private float zPowerupRange = 60.0f;
private float enemyYSpawn = 0.75f;
private float gemYSpawn = 3.0f;
private float powerupSpawnTime = 5.0f;
private float enemySpawnTime = 3.0f;
private float startDelay = 1.0f;
// Start is called before the first frame update
void Start()
{
InvokeRepeating("SpawnRandomEnemy", startDelay, enemySpawnTime);
InvokeRepeating("SpawnPowerup", startDelay, powerupSpawnTime);
}
// Update is called once per frame
void Update()
{
}
void SpawnRandomEnemy()
{
float randomX = Random.Range(-xSpawnRange, xSpawnRange);
int randomIndex = Random.Range(0, enemies.Length);
Vector3 spawnPos = new Vector3(randomX, enemyYSpawn, zEnemySpawn);
Instantiate(enemies[randomIndex], spawnPos, enemies[randomIndex].gameObject.transform.rotation);
}
void SpawnPowerup()
{
float randomX = Random.Range(-xSpawnRange, xSpawnRange);
float randomZ = Random.Range(-zPowerupRange, zPowerupRange);
Vector3 spawnPos = new Vector3(randomX, gemYSpawn, randomZ);
Instantiate(powerup, spawnPos, powerup.gameObject.transform.rotation);
}
}
Your answer
Follow this Question
Related Questions
C# creating an array that holds coordinate points 1 Answer
Class array initialization on Start() gives -> Object reference not set to an instance of an object 1 Answer
Destroy gameobjects in an array using a for loop. 0 Answers
Can I instantiate objects from an array 1 at a time? 1 Answer
Random array with prefabs? 2 Answers