using System; using TMPro; using UnityEngine; using UnityEngine.UI; public class LevelSelectController : MonoBehaviour { [SerializeField] private GameObject pagePrefab; [SerializeField] private int nonPageObjects = 3; private void Start() { InitalizeLevelSelect(); } /// /// Initializes LevelSelect /// public void InitalizeLevelSelect() { int highestLevel = GameManager.Instance.HighestLevel; int lastLevel = GameManager.Instance.LastLevel; int pagesNeeded = lastLevel % 6 == 0? lastLevel/6 : lastLevel/6 + 1; int buttonsOnLastPage = lastLevel % 6; GameObject currentPage; for (int i = 1; i <= pagesNeeded; i++) { currentPage = GameObject.Instantiate(pagePrefab, transform.GetChild(0)); currentPage.GetComponent().PageNr = i; //Load images for buttons for (int j = 1; j <= 6; j++) { String buttonName = "ButtonLevel" + j; int levelNr = j + (currentPage.GetComponent().PageNr-1) * 6; GameObject button = currentPage.transform.Find(buttonName).gameObject; Image image = button.transform.Find("Image").GetComponent(); // Level unlocked if (levelNr <= highestLevel) { string loadStr = levelNr < 10 ? "LevelSelect/Level0" + levelNr : "LevelSelect/Level" + levelNr; image.sprite = Resources.Load(loadStr, typeof(Sprite)) as Sprite; button.transform.Find("Text").gameObject.GetComponent().text = levelNr + ""; button.GetComponent