public void AddEntry(ScoreboardEntryData scoreboardEntryData) { ScoreboardSaveData savedScores = GetSavedScores(); ScoreboardEntryData hashedScoreboardEntryData = CreateIntegrityHash(scoreboardEntryData); Debug.Log("Adding new score entry..."); bool scoreAdded = false; for (int i = 0; i < savedScores.highscores.Count; i++) { if (hashedScoreboardEntryData.entryScore > savedScores.highscores[i].entryScore) { savedScores.highscores.Insert(i, hashedScoreboardEntryData); scoreAdded = true; break; } } if (!scoreAdded && savedScores.highscores.Count < maxScoreboardEntries) { savedScores.highscores.Add(hashedScoreboardEntryData); } if (savedScores.highscores.Count > maxScoreboardEntries) { savedScores.highscores.RemoveRange(maxScoreboardEntries, savedScores.highscores.Count - maxScoreboardEntries); } UpdateUI(savedScores); SaveScores(savedScores); Debug.Log("New entry added succesfully"); }
private void Start() { ScoreboardSaveData savedScores = GetSavedScores(); UpdateUI(savedScores); SaveScores(savedScores); }
private void SaveScores(ScoreboardSaveData scoreboardSaveData) { using (StreamWriter stream = new StreamWriter(SavePath)) { string json = JsonUtility.ToJson(scoreboardSaveData, true); stream.Write(json); } }
private void UpdateUI(ScoreboardSaveData savedScores) { if (SceneManager.GetActiveScene().buildIndex > 0) { return; } foreach (Transform child in highscoreHolderTransform) { Destroy(child.gameObject); } foreach (ScoreboardEntryData highscore in savedScores.highscores) { var checkedHighscore = CheckHighScore(highscore); var child = Instantiate(scoreboardEntryObject, highscoreHolderTransform); child.GetComponent <ScoreboardEntryUI>().Initialise(checkedHighscore); } SaveScores(savedScores); }