«Индекс находился за пределами массива» для инициализации массива GameObject - PullRequest
0 голосов
/ 20 июня 2019

Кто-нибудь знает, почему это выдает ошибку о том, что индекс выходит за пределы для массивов игровых объектов?

public GameObject[] Prefab;
public GameObject[] CopyPrefab;

for (int i = 0; i < 10; i++)
{
    CopyPrefab[i] = Instantiate(Prefab[i]) as GameObject;
}

ошибка: IndexOutOfRangeExCeption: Index was outside the bounds of the array.

Я пытался CopyPrefab[i-1] = Instantiate(Prefab[i-1]) as GameObject; иCopyPrefab[i] = Instantiate(Prefab[0]) as GameObject;.я не понимаю, что делаю не так, пожалуйста

Ответы [ 2 ]

3 голосов
/ 20 июня 2019

Как узнать точное количество объектов в вашем GameObject []? Не задавайте жестко условие конца цикла для i <10. Вместо этого вы должны либо выполнить цикл, используя цикл foreach, либо использовать свойство Length массива. </p>

Цикл в C #

0 голосов
/ 20 июня 2019
public GameObject[] Prefab;
public GameObject[] CopyPrefab;
CopyPrefab = new GameObject[Prefab.Length];
for (int i = 0; i < Prefab.Length; i++)
{
    CopyPrefab[i] = Instantiate(Prefab[i]) as GameObject;
}

Сначала убедитесь, что длина двух массивов одинакова, если CopyPrefab.Length = 10, вы просто можете использовать CopyPrefab [0 ... 9], не можете использовать CopyPrefab [-1] или CopyPrefab [10] ... "Это вне диапазона"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...