- Home /
Random object, Array index out of range
I would like to create customer for random amount and random time.here is my code and i get array index out of range.i dont know why.beside i couldnt figure out how to randomize the time for creation
public GameObject[] customer;
private int spawnTime=3;
public Transform spawnPoint;
private int randomIndex;
void Awake(){
randomIndex = Random.Range (0, customer.Length);
InvokeRepeating ("Spawn", spawnTime, spawnTime);
}
void Spawn(){
Instantiate (customer[randomIndex],spawnPoint.position,transform.rotation );
}
at the last line of code (instantiate) i get that error. so could you help me out here ?
u mean the spawnPoint ? if so, i have only one.cuz i want all of them to come from one place.
make sure you have set customer, or check if its null(length==0) before instantiate. If its null randomIndex is 0 and that's still out of range.
so i checked print ("length " + customer.Length); showed me zero. Where am i doing wrong. In the hierarchy i have one customer and script is attached to it and i fill everything. but in customer i have size which shows me 0.so i did 2 then it started to create customers but not randomly. it created like 2-4-8-16
Your spawn time is always going to be 3, because you never changed it.
In your case at line 8, you have
InvokeRepeating("Spawn",3,3);
Which means call Spawn() every 3 seconds for the rest of eternity.
You may want something like
void Start()
{
Invoke("Spawn",spawnTime);
}
void Spawn()
{
int spawnIndex = Random.Range (0, customer.Length);
Instantiate(customer[spawnIndex],spawnPoint.position, transform.rotation);
float timeUntilNextSpawn = Random.Range (0f, 10f);
Invoke("Spawn",spawnTime);
}
This will make it take 3 seconds to spawn the first customer, and a random time between 0 and 10 to spawn the next one.
Your answer
Follow this Question
Related Questions
Array index is out of Range!? 1 Answer
Wierd Animation Bug 0 Answers
helpme RPC 1 Answer
Simple index out of range question? 1 Answer
Is it possible to grab an index in a List by random as in arrays? 2 Answers