/// <summary> /// This function is used to turn all of the buttons green before the current buttons. /// This will visually show that the levels have been completed in the past. /// This should be used in conjunction with a saved file. /// </summary> /// <param name="group"></param> private void UpdateButtons(SugarButton group) { Transform trans = group._currentGroup.transform; int size = Mathf.Clamp(group._currentButtonIndex, 0, trans.childCount); for (int i = 0; i < size; i++) { Button but = trans.GetChild(i).GetComponent <Button>(); ColorBlock block = but.colors; block.disabledColor = Color.green; but.colors = block; } }
private PlayerInfoScript info; // A reference to the PlayerInfoScript singleton #endregion private void Start() { //Get all of the references in the game _buttonPanel = GameObject.Find("Buttons"); _allPanels = GameObject.Find("SugarPanels"); _backButton = GameObject.Find("BackButton"); _selectionPanel = GameObject.Find("Selection"); _skillsPanel = GameObject.Find("SkillsPanel"); _mainMenuPanel = GameObject.Find("MainMenu"); _achievementPanel = GameObject.Find("AchievementsPanel"); _leftArrow.SetActive(false); _xpSlider = tempLevel.transform.parent.transform.Find("Fill").GetChild(0).GetComponent <Image>(); _allPanels.SetActive(false); _selectionPanel.SetActive(false); _skillsPanel.SetActive(false); _achievementPanel.SetActive(false); info = PlayerInfoScript.instance; tempCoins.text = info.GetCoinCount().ToString("00000000"); _xpSlider.fillAmount = info.GetPercentageToNextLevel(); tempLevel.text = "" + info.GetLevel(); UpdatePowers(info.GetLevel()); _currentLevels = _mainMenuPanel; int size = _allPanels.transform.childCount; //Loop through the sugar groups panels for (int i = 0; i < size; i++) { SugarButton group = new SugarButton(); Transform panel = _allPanels.transform.GetChild(i).GetChild(0); _allPanels.transform.GetChild(i).GetComponent <ScrollRect>().verticalNormalizedPosition = 1; //Automatically scroll to the top group.init(panel.gameObject, PlayerInfoScript.instance.GetLevelInSugarGroup(i)); //Init the sugar group buttonGroups.Add(group); //Update the titles Transform child = panel.parent.Find("Text"); if (group._currentButton) { group._currentButton.onClick.AddListener(() => PlayLevel(_currentSelection)); //Set the current button to be active group._currentButton.interactable = true; child.GetComponent <Text>().text = buttonGroups[i]._name + " - " + (buttonGroups[i]._currentButtonIndex) + "/" + buttonGroups[i]._buttonCount; } else { child.GetComponent <Text>().text = buttonGroups[i]._name + " - " + (buttonGroups[i]._buttonCount) + "/" + buttonGroups[i]._buttonCount; } //Update the buttons to be at the location last saved (Future: From the save file) UpdateButtons(buttonGroups[i]); panel.parent.gameObject.SetActive(false); } //Settings for the "map" selection animations _selectionOffset = -_selectionPanel.transform.GetChild(0).GetComponent <RectTransform>().sizeDelta.x / buttonGroups.Count; _targetLocation = -_selectionPanel.transform.GetChild(0).GetChild(0).GetComponent <RectTransform>().anchoredPosition.x; }