Пример #1
0
    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);
    }
Пример #2
0
    private void Start()
    {
        ScoreboardSavedData scoreboardSaveData = LoadSavedData();

        UpdateUI(scoreboardSaveData);
        SaveData(scoreboardSaveData);
    }
Пример #3
0
 private void SaveData(ScoreboardSavedData scoreboardSaveData)
 {
     using (StreamWriter streamWriter = new StreamWriter(_savePath))
     {
         string jsonStr = JsonUtility.ToJson(scoreboardSaveData, true);
         streamWriter.Write(jsonStr);
     }
 }
Пример #4
0
 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);
     }
 }