после завершения уровня отображается экран выигрыша. у которого есть две кнопки продолжения и меню. Мне удалось деактивировать кнопки и оставить только кнопку 1-го уровня разблокированной, но не могу получить кнопку уровня 2, чтобы разблокировать ее, когда я очищаю уровень 1. также я хочу, чтобы кнопка продолжения перешла на уровень 2 после нее показывается в следующей сцене при завершении уровня 1. Эта игра в стиле прорыва, и это проблемы, которые я не могу решить. Я приложил соответствующие сценарии, которые я считал необходимыми. если вы хотите, чтобы другие, пожалуйста, попросите их в комментариях. Полный список всех сценариев находится в конце. Я был бы очень признателен за некоторую помощь. Я обязательно постараюсь объяснить мою проблему немного больше, если вы попросите их. поэтому, пожалуйста, проверьте этот вопрос позже, чтобы проверить изменения.
скрипт ниже прикреплен к уровню 1: -
{
[SerializeField] int breakableBlocks; // Serialized for debugging purposes
SceneLoader sceneloader;
private void Start()
{
sceneloader = FindObjectOfType<SceneLoader>();
}
public void CountBreakableBlocks()
{
breakableBlocks++;
}
public void BlockDestroyed()
{
breakableBlocks--;
if (breakableBlocks <= 0)
{
GetComponent<LevelSelector>().levelunlocked =
sceneloader.LoadWinScreen();
}
}
}
Скрипт ниже привязан к селектору уровней: -
{
public Button[] levelButtons;
public int levelunlocked = 1;
private void Start()
{
int levelReached = PlayerPrefs.GetInt("levelReached", levelunlocked);
for (int i = 0; i < levelButtons.Length; i++)
{
if (i + 1 > levelReached)
{
levelButtons[i].interactable = false;
}
}
}
}
Сценарий загрузчика сцены: -
public class SceneLoader : MonoBehaviour {
public void LoadNextScene()
{
int currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
SceneManager.LoadScene(currentSceneIndex + 1);
}
public void LoadStartScene()
{
SceneManager.LoadScene(0);
}
public void LoadLevelSelectScreen()
{
SceneManager.LoadScene(1);
}
public void LoadWinScreen()
{
SceneManager.LoadScene(5);
}
public void LoadGameOverScreen()
{
SceneManager.LoadScene(6);
}
public void QuitGame()
{
Application.Quit();
}
public void Level1()
{
SceneManager.LoadScene(2);
}
public void Leve2()
{
SceneManager.LoadScene(3);
}
}
это настройка сборки: -
настройки сборки
Сценарии, которые у меня есть: -
1.Ball
2.Block
3.Level
4.LevelSelector
5.LoseCollider
6.Paddle
7.SceneLoader