ShantiManti/Assets/game/Scripts/UI_start/LevelButtons.cs
MarcUs7i d3faa70e5f Improved SceneManagement & removed Animation Bug
Improved SceneManagement and Pause Game Management
Removed a Animation bug in the Bonus level.
Changed names in the Info section and in the About scene
2024-09-27 11:25:38 +02:00

88 lines
2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;
using UnityEngine.UI;
public class LevelButtons : MonoBehaviour
{
public ButtonData[] buttonData;
public Button[] buttons;
private MainMenu mainMenu;
private int level = 0;
void Awake()
{
buttonData = new ButtonData[buttons.Length];
for (int i = 0; i < buttonData.Length; i++)
{
buttonData[i] = new ButtonData(buttons[i], i + 1);
}
mainMenu = FindObjectOfType<MainMenu>().GetComponent<MainMenu>();
PlayerSaving.LoadingPlayer = true;
level = PlayerSaving.levels;
InitializeButtonListeners();
UpdateButtons();
}
void UpdateButtons()
{
for (int i = 0; i < level; i++)
{
if (buttonData.Length > i)
{
buttonData[i].button.interactable = true;
}
}
for (int i = level; i < buttonData.Length; i++)
{
buttonData[i].button.interactable = false;
}
buttonData[0].button.interactable = true;
buttonData[^1].button.interactable = true;
}
void InitializeButtonListeners()
{
foreach (ButtonData data in buttonData)
{
if (data.button.interactable)
{
data.button.onClick.AddListener(() => mainMenu.StartLevels(data.level));
}
}
}
// Test if its working
/*void Update()
{
if (Input.GetKeyDown(KeyCode.U))
{
level--;
UpdateButtons();
Debug.Log("Test: " + level);
}
if (Input.GetKeyDown(KeyCode.I))
{
level++;
UpdateButtons();
Debug.Log("Test: " + level);
}
}*/
public class ButtonData
{
public Button button;
public int level;
public ButtonData(Button button, int level)
{
this.button = button;
this.level = level;
}
}
}