Неправильно работает открытие уровней unity
Когда игрок доходит до финиша, должен открыться 1 следующей уровень, а открывается сразу 2 следующих уровня.
Код при победе:
int currentLevel = SceneManager.GetActiveScene().buildIndex;
if (currentLevel >= PlayerPrefs.GetInt("levels"))
{
PlayerPrefs.SetInt("levels", currentLevel + 1);
}
Код для открытия следующего уровня:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class LevelManager : MonoBehaviour
{
int levelUnLock;
public Button[] buttons;
void Start()
{
levelUnLock = PlayerPrefs.GetInt("levels", 1);
for (int i = 0; i < buttons.Length; i++)
{
buttons[i].interactable = false;
}
for (int i = 0; i <levelUnLock; i++)
{
buttons[i].interactable = true;
}
}
public void loadLevel(int levelIndex)
{
SceneManager.LoadScene(levelIndex);
}
}
Ответы (1 шт):
Автор решения: SoulOFTrue
→ Ссылка
Оформлю ответом предположение.
Вот это:
for (int i = 0; i <levelUnLock; i++)
{
buttons[i].interactable = true;
}
Попробуйте заменить на это:
for (int i = 0; i <levelUnLock-1; i++)
{
buttons[i].interactable = true;
}
Это некрасивое решение, исключительно для того, чтобы проверить предположение