/// <summary> /// Creates a button for each level and adds to the level selection menu. /// </summary> /// <param name="menuControl">An object that can load a new level. Used when a level selection button is pressed.</param> public void BuildLevelSelectScreen(IMainMenuControl menuControl) { levelSelectMenu.gameObject.SetActive(true); var levels = levelManager.levels; for (int i = 0; i < levels.Length; i++) { LevelSelectionButton button = null; if (m_Buttons[i] == null) { button = Instantiate(buttonPrefab).GetComponent <LevelSelectionButton>(); m_Buttons[i] = button; } else { button = m_Buttons[i]; button.gameObject.SetActive(true); } button.Initialise(menuControl, levelManager, levels[i]); button.transform.SetParent(levelSelectMenu, false); } }
/// <summary> /// Initialises button. /// </summary> /// <param name="mainMenuControl"></param> /// <param name="levelManager"></param> /// <param name="level"></param> public void Initialise(IMainMenuControl mainMenuControl, ILevelManager levelManager, Level level) { m_LevelManager = levelManager; m_Level = level; m_MenuControl = mainMenuControl; SetTextToLevelID(); SetTextColour(); if (ShouldLevelBeSelectable()) { EnableButtonInteraction(); } else { DisableButtonInteraction(); } m_Initialised = true; }