protected void UpdateButtonState(Button button, SettingPanelMode mode) { TabButtonState state = GetButtonState(mode); //Set button interactable state switch (state) { case TabButtonState.Enabled: case TabButtonState.Flashing: button.gameObject.SetActive(true); button.interactable = true; break; case TabButtonState.Disabled: case TabButtonState.Selected: button.gameObject.SetActive(true); button.interactable = false; break; case TabButtonState.Hidden: button.gameObject.SetActive(false); break; default: Debug.LogError($"Unexpected TabButtonState: {state}"); break; } button.GetComponent <Image>().color = GetButtonColor(state); button.GetComponentInChildren <Text>().color = GetTextColor(state); }
protected void UpdateUIForMode(SettingPanelMode mode) { currentMode = mode; lockButton.GetComponentInChildren <Text>().text = PlayerData.GlobalData.IsLocked ? "Unlock" : "Lock"; lockButton.interactable = mode == SettingPanelMode.General || mode == SettingPanelMode.UserSelect; UpdateButtonState(generalSettingsButton, SettingPanelMode.General); UpdateButtonState(userSelectButton, SettingPanelMode.UserSelect); }
protected void TabButtonClicked(SettingPanelMode mode) { UpdateUIForMode(mode); switch (mode) { case SettingPanelMode.General: settingsPanelManager.SetPanelActive(generalSettingsMenu); break; case SettingPanelMode.UserSelect: settingsPanelManager.SetPanelActive(userIDMenu); break; default: Debug.LogError($"Unexpected SettingPanelMode: {mode}"); break; } }
protected TabButtonState GetButtonState(SettingPanelMode button) { if (button == currentMode) { return(TabButtonState.Selected); } switch (button) { case SettingPanelMode.General: return(TabButtonState.Enabled); case SettingPanelMode.UserSelect: if (PlayerData.IsDefault || !PlayerData.GlobalData.IsLocked) { return(flashOn ? TabButtonState.Flashing : TabButtonState.Enabled); } return(TabButtonState.Disabled); default: Debug.LogError($"Unexpected SettingPanelMode: {button}"); return(TabButtonState.Enabled); } }