public bool AddEntry(ScoreboardEntryData entryData) { ScoreboardSavedData savedData = LoadSavedData(); bool isAdded = false; for (int i = 0; i < savedData.highscores.Count; i++) { if (entryData.score > savedData.highscores[i].score) { savedData.highscores.Insert(i, entryData); isAdded = true; break; } } if (!isAdded && savedData.highscores.Count < _maxNumberOfEntries) { savedData.highscores.Add(entryData); isAdded = true; } if (savedData.highscores.Count > _maxNumberOfEntries) { savedData.highscores.RemoveRange( _maxNumberOfEntries, savedData.highscores.Count - _maxNumberOfEntries ); } if (isAdded) { SaveData(savedData); UpdateUI(savedData); } return(isAdded); }
private void Start() { ScoreboardSavedData scoreboardSaveData = LoadSavedData(); UpdateUI(scoreboardSaveData); SaveData(scoreboardSaveData); }
private void SaveData(ScoreboardSavedData scoreboardSaveData) { using (StreamWriter streamWriter = new StreamWriter(_savePath)) { string jsonStr = JsonUtility.ToJson(scoreboardSaveData, true); streamWriter.Write(jsonStr); } }
private void UpdateUI(ScoreboardSavedData scoreboardSaveData) { foreach (Transform entry in _scoresHolderTransform) { Destroy(entry.gameObject); } foreach (ScoreboardEntryData entryData in scoreboardSaveData.highscores) { Instantiate(_scoreboardEntryPrefab, _scoresHolderTransform). GetComponent <ScoreboardEntryUI>().Init(entryData); } }