- Home /
Array picks same object
I made a script where on start, all the game objects in the array are disabled, a coroutine starts, one object from the array is enabled and then repeats. Problem is that the same object keeps getting enabled. Anyway to fix this?
GameObject[] Enemy;
GameObject currentEnemy;
int index;
private void Start()
{
Enemy = GameObject.FindGameObjectsWithTag("Enemy");
foreach(GameObject obj in Enemy)
{
obj.SetActive(false);
}
StartCoroutine(Spawn());
}
IEnumerator Spawn()
{
yield return new WaitForSeconds(3);
index = Random.Range(0, Enemy.Length);
currentEnemy = Enemy[index];
print(currentEnemy.name);
currentEnemy.SetActive(true);
yield return new WaitForSeconds(1);
Start();
}
Fixed it. Removed the FindGameObjectsWithTag line and changed the array to a public one.
Answer by hexagonius · Oct 20, 2018 at 08:54 PM
it's either bad luck on the random number (it's possible to return the same number 10 times in a row even though the chance is tiny), or the array only contains one element.
I have 4 objects. I might just make it 10-20 and see if its just me being unlucky
I think the problem is because there is one element in the array, however all the objects have the same tag
Your answer
Follow this Question
Related Questions
pick a random int with the value of 1 from an array 2 Answers
how to have an array in instantiate function 2 Answers
How to randomly pick a gameobject except for one gameobject in an array ? 1 Answer
Assign role randomly from array 2 Answers
Create an array that chooses between four random numbers (C#) 3 Answers