// Initial PlayerPrefs creation for each Level --> set unlock value void SaveData() { if (PlayerPrefs.HasKey("Exercise0Unlocked")) { Debug.Log("Exercise0Unlocked exists"); return; } else { Debug.Log("Exercise0Unlocked exists NOT"); GameObject[] allButtons = GameObject.FindGameObjectsWithTag("ExerciseButton"); foreach (GameObject buttons in allButtons) { ExerciseLevelButton button = buttons.GetComponent <ExerciseLevelButton>(); PlayerPrefs.SetInt("Exercise" + button.buttonText.text + "Unlocked", button.unlocked); } } }
void FillMenu() { // For current tier create tier basics, exercises and summary button //Text for the tier // _tierText.text = tier.tierName; // Instantiate a button gameobject from a prefab GameObject tierBasicGameObjectButton = Instantiate(exerciseLevelButton) as GameObject; // Get the script for the button to set its values ExerciseLevelButton tierBasicButton = tierBasicGameObjectButton.GetComponent <ExerciseLevelButton>(); tierBasicButton.buttonText.text = "Introduction"; // Set image for basic information button tierBasicGameObjectButton.GetComponent <Image>().sprite = Resources.Load <Sprite>("Images/Information/" + _currTier.fileName); tierBasicButton.bgImage.sprite = Resources.Load <Sprite>("Images/Information/InformationIcon"); tierBasicButton.bgImage.color = new Color32(255, 255, 255, 20); // If tier unlocked --> unlock the basic information for this tier if (_currTier.isInteractable) { tierBasicButton.unlocked = 1; tierBasicButton.GetComponent <Button>().interactable = true; } else { tierBasicButton.unlocked = 0; tierBasicButton.GetComponent <Button>().interactable = false; tierBasicGameObjectButton.GetComponent <Image>().color = new Color32(150, 150, 150, 255); } // Add listener for the button to load the appropriate scene tierBasicButton.GetComponent <Button>().onClick.AddListener(() => { SceneManager.LoadScene("TierInfo"); }); // Append the basic information button to the exercise spacer tierBasicGameObjectButton.transform.SetParent(spacerHorizontal, false); // Manage exercise data in the current tier foreach (var exercise in _currTier.exercises) { // Instantiate a button gameobject from a prefab GameObject gameObjectButton = Instantiate(exerciseLevelButton) as GameObject; // Get the script for the button to set its values ExerciseLevelButton button = gameObjectButton.GetComponent <ExerciseLevelButton>(); // Set the values regarding the current exercise button.buttonText.text = exercise.exerciseName; button.unlocked = exercise.unlocked; button.GetComponent <Button>().interactable = exercise.isInteractable; // Set image for exercise button // Debug.Log("Images/" + tier.fileName + "/" + exercise.fileName); button.bgImage.sprite = Resources.Load <Sprite>("Images/" + _currTier.fileName + "/" + exercise.fileName); // If exercise locked if (!exercise.isInteractable) { button.bgImage.color = MainColors.WhiteTransparent(3); gameObjectButton.GetComponent <Image>().sprite = Resources.Load <Sprite>("Images/LockExercise2"); gameObjectButton.GetComponent <Image>().color = MainColors.Grey(); } // Fill progress in button foreach (var side in exercise.sides) { if (side.accomplished) { button.progressImage.fillAmount += 0.5f; } } // Add listener for the button to set the PP and load the appropriate scene button.GetComponent <Button>().onClick.AddListener(() => { PlayerPrefs.SetInt("CurrentExerciseId", _currTier.exercises.IndexOf(exercise)); SceneManager.LoadScene("ExerciseSideSelection"); }); // Highlight current exercise if (PlayerPrefs.GetInt("CurrentExerciseId") == _currTier.exercises.IndexOf(exercise)) { Debug.Log("Current exercise to highlight: " + exercise.exerciseName); } // Append the exercise button to the exercise spacer gameObjectButton.transform.SetParent(spacerHorizontal, false); } // Instantiate a button gameobject from a prefab GameObject tierSumGameObjectButton = Instantiate(exerciseLevelButton) as GameObject; // Get the script for the button to set its values ExerciseLevelButton tierSumButton = tierSumGameObjectButton.GetComponent <ExerciseLevelButton>(); // Set the values regarding the summary tierSumButton.buttonText.text = "Summary"; // Set image for summary button tierSumGameObjectButton.GetComponent <Image>().sprite = Resources.Load <Sprite>("Images/Summary/SummaryIcon"); tierSumButton.bgImage.sprite = Resources.Load <Sprite>("Images/Summary/SummaryTierBG"); tierSumButton.bgImage.color = new Color32(255, 255, 255, 15); // If last exercise accomplished --> unlock the summary for this tier if (_currTier.exercises.Last().accomplished) { tierSumButton.unlocked = 1; tierSumButton.GetComponent <Button>().interactable = true; } else { tierSumButton.unlocked = 0; tierSumButton.GetComponent <Button>().interactable = false; tierSumButton.GetComponent <Image>().color = new Color32(150, 150, 150, 255); } // Add listener for the button to load the appropriate scene tierSumButton.GetComponent <Button>().onClick.AddListener(() => { SceneManager.LoadScene("TierSummary"); }); // Append the summary button to the exercise spacer tierSumGameObjectButton.transform.SetParent(spacerHorizontal, false); // SaveData(); }