- Home /
Enemy ai's won't spawn in scene / IndexOutOfRangeException: Array index is out of range. EnemiesSpawner.Spawn () (at Assets/EnemiesSpawner.cs:17)
Sometimes my enemy ai's will spawn sometimes they won't spawn in the scene. I have two spawn points in two different locations in my scene and I have two different enemy ai's . I just want to spawn both of them and set the max for 20 every 5 seconds of so. One spawn point will work and the other one will work but the enemy ai will just stand where they spawn at . Sometimes some both enemy ai's will work . I am always getting this error :
IndexOutOfRangeException: Array index is out of range. EnemiesSpawner.Spawn () (at Assets/EnemiesSpawner.cs:17)
using UnityEngine;
using System.Collections;
public class EnemiesSpawner : MonoBehaviour {
public GameObject[] enemy;
public Transform [] spawnPoints;
public float spawnTime = 5f;
public Vector3 spawnValues;
void Start () {
InvokeRepeating("Spawn", spawnTime, spawnTime); //Calls the "Spawn" function every 10 seconds.
}
void Spawn () {
int spawnPointIndex = Random.Range (0, spawnPoints.Length -1);Instantiate(enemy[10], spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), 1, Random.Range (-spawnValues.z, -spawnValues.z) ) ; // <= here
}
}
First note that:
int spawnPointIndex = Random.Range (0, spawnPoints.Length -1);
is not getting the full size of spawnPoins, don't know if was intentional to exclude the last spawn position, but Range.Range(int, int) the max is exclusive, with means: using Random.Range( 0, 10 ) will return values between 0 and 9.
https://docs.unity3d.com/ScriptReference/Random.Range.html
As for the index out of range, i can think of 2 things:
Haven't you forgot to set the spawnPoints in the editor ?
Are you sure you have 11 enemies ? note that position 10 means the 11th enemy in this array. since 0 to 10 = 11, so if you wanted the 10th enemy the index should be 9.
Your answer
Follow this Question
Related Questions
Why does List
Array index is out of range 1 Answer
array problem 1 Answer
Array index is out of range error Edited 1 Answer
Matching Index of two Arrays after one Array is sort 3 Answers