-2

Всем привет.Помогите пожалуйста.Хочу сделать меню уровней чтобы сначала был открыт только первый уровень,а после его прохождения открывался второй,а после прохождения второго уровня открывался третий уровень ну и так далее.Я написал скрипт для этих уровней.И как только я запускаю игру вылетает ошибка: IndexOutOfRangeException: Index was outside the bounds of the array. LevelManager.Start () (at Assets/Scripts/LevelManager.cs:23)

А вот сам скрипт:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class LevelManager : MonoBehaviour { int LvlUnLock; public Button[] buttons;

void Start()
{
    LvlUnLock = PlayerPrefs.GetInt("Lvl", 2);

    for (int i = 0; i < buttons.Length; i++)
    {
        buttons[i].interactable = false;
    }

    for (int i = 0; i < LvlUnLock; i++)
    {
        buttons[i].interactable = true;//Проблема указывает на эту строчку
    }
}

public void loadLevel(int levelIndex)
{
    SceneManager.LoadScene(levelIndex);
}

}

Как убрать эту проблему чтобы всё работало??? Пожалуйста помогите!!!

aepot
  • 49,560

1 Answers1

2

Значение i больше, чем длина массива. Не забудьте, что массив индексируется с нуля

Смотрите что у вас в buttons.Length и LvlUnlock. Они явно отличаются по значению

  • А как это исправить?Что надо для этого сделать? – Kim Viking Apr 19 '22 at 07:58
  • Что нужно сделать написано во втором абзаце ответа. Нужно, чтобы значения совпадали или второе было меньше – Алексей Шиманский Apr 19 '22 at 08:00
  • Извините за мою тупость...Но что за значения?Там где написано i = 0? – Kim Viking Apr 19 '22 at 08:05
  • Я меняю эти значения но ошибка всё равно выскакивает – Kim Viking Apr 19 '22 at 08:06
  • Начнём с теории. Давайте так: расскажите из чего состоит цикл for. Что мы туда записываем? Вообще, по теории, не в конкретном примере – Алексей Шиманский Apr 19 '22 at 08:10
  • Честно я не знаю,я начинающий программист и я я учусь только. – Kim Viking Apr 19 '22 at 08:16
  • Можете пожалуйста пожалуйста сказать что мне и куда вписывать? – Kim Viking Apr 19 '22 at 08:24
  • Тогда вам для начала надо прочитать хотя бы одну книгу. Программированием наобум и методом тыка и догадок не занимаются – Алексей Шиманский Apr 19 '22 at 08:59
  • Потому что я конкретно и чётко написал что смотреть и править. Если у вас даже на этом уровне проблемы, то однозначно книгу читать бегом – Алексей Шиманский Apr 19 '22 at 09:01