using System.Collections.Generic; using TMPro; using UnityEngine; public class ScoreDataManager : MonoBehaviour { public List leaderboardScoreTexts; private List leaderboardScores = new List(); private void Start() { if (DataStorageManager.Instance == null) { Debug.LogError("DataStorageManager.Instance is null"); return; } leaderboardScores = DataStorageManager.Instance.Load(); RefreshUI(); } public void AddScore(int newScore) { List scores = DataStorageManager.Instance.Load(); scores.Add(newScore); // Sort descending scores.Sort((a, b) => b.CompareTo(a)); if (scores.Count > 10) scores.RemoveRange(10, scores.Count - 10); DataStorageManager.Instance.SaveScores(scores); leaderboardScores = scores; foreach (TextMeshProUGUI scoreText in leaderboardScoreTexts) { scoreText.enabled = true; } // Refresh UI immediately RefreshUI(); } private void RefreshUI() { for (int i = 0; i < leaderboardScoreTexts.Count; i++) { if (i < leaderboardScores.Count) leaderboardScoreTexts[i].text = (i+1) +": " + leaderboardScores[i].ToString("D8"); else leaderboardScoreTexts[i].text = "--------"; } } public List GetLeaderboardScores() { return leaderboardScores; } }