1Frosty
@1Frosty
Познаю новое

Почему IndexOutOfRangeException: Array index is out of range?

Доброго времени суток. Вылазит ошибка IndexOutOfRangeException: Array index is out of range, но не пойму почему.
Вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Gameplay : MonoBehaviour {

    string Word;
    public GameObject PrefabCharCell;
    public GameObject[] tempCell;
    public Transform GridCellPos;
    
	void Start ()
    {
        Word = "Meet"; 

        foreach (char ch in Word.ToUpper().ToCharArray())
        {
            for (int i = 0; i < Word.Length; i++)
            {
                tempCell[i] = Instantiate(PrefabCharCell);
                tempCell[i].transform.SetParent(GridCellPos, false);
            }
		}      
    }
}

Я хочу каждый созданный объект сохранить в массив tempCell, чтобы потом работать с ними (объектами), но выдаётся ошибка IndexOutOfRangeException: Array index is out of range, что я выхожу за пределы массива, только почему ?
Подскажите пожалуйста, как решить проблему ? Или альтернативный способ, как работать с созданными объектами (массивами) через скрипт. Заранее огромное спасибо!
  • Вопрос задан
  • 1284 просмотра
Решения вопроса 2
Beshere
@Beshere
Разработчик
Надо выделить память под массив tempCell

tempCell = new GameObject[Word.Length];
Ответ написан
Комментировать
@kttotto
пофиг на чем писать
Наверняка потому, что tempCell.Length < Word.Length. На какой то итерации ошибка и вылезет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@saylar
Разработчик Unity C#
for (int i = 0; i < Word.Length - 1; i++)
Попробуй так
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы