我正在制作一个简单的spawn脚本。我有问题,因为我想制作动态数组,我就停止了。
问题是我现在有这个错误:
ArgumentOutOfRangeException:参数超出范围。参数名称: 指数 System.Collections.Generic.List`1 [UnityEngine.GameObject] .CheckIndex(Int32 index)...
代码:
public float spawnTime = 5f;
public float spawnDelay = 1f;
public int enemyID = 0;
public List<GameObject> enemy = new List<GameObject>();
// Use this for initialization
void Start() {
InvokeRepeating("Spawn", spawnDelay, spawnTime);
}
void Spawn ()
{
Debug.Log (enemyID);
enemy[enemyID] = Instantiate (Resources.Load ("Enemies/Enemy"), new Vector3 (0, 3, 0), Quaternion.identity) as GameObject; // this is a problematic line, exactly this -> enemy[enemyID]
enemyID++;
}
答案 0 :(得分:2)
这是因为您的列表目前为空且有enemy.length == 0
,因此未定义列表的索引0。
要动态地将项目添加到列表调用enemy.Add(Instantiate(...))
答案 1 :(得分:1)
在初始化给定索引之前,您无法使用索引器括号List
访问[]
!
要向List
添加元素,您必须使用enemy.add(gameobject)