Меню Уровне в Unity

Всем привет.Помогите пожалуйста.Хочу сделать меню уровней чтобы сначала был открыт только первый уровень,а после его прохождения открывался второй,а после прохождения второго уровня открывался третий уровень ну и так далее.Я написал скрипт для этих уровней.И как только я запускаю игру вылетает ошибка: 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);
    }
}

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


Ответы (1 шт):

Автор решения: Алексей Шиманский

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

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

→ Ссылка