53 lines
2.4 KiB
C#
53 lines
2.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
|
|
public class Leaderboard : MonoBehaviour
|
|
{
|
|
public Transform leaderboardItemsParent;
|
|
public GameObject leaderboardItemPrefab;
|
|
public void PopulateLeaderboard(){
|
|
for(int i=0; i < leaderboardItemsParent.childCount; i++){
|
|
Destroy(leaderboardItemsParent.GetChild(i).gameObject);
|
|
}
|
|
// Load the locally saved highscore list
|
|
List<HighscoreEntry> highscores = new List<HighscoreEntry>();
|
|
for (int i = 0; i < 10; i++) {
|
|
string nameKey = $"highscore_name_{i}";
|
|
string scoreKey = $"highscore_score_{i}";
|
|
if (PlayerPrefs.HasKey(scoreKey)) {
|
|
string playerName = PlayerPrefs.GetString(nameKey, "");
|
|
int score = PlayerPrefs.GetInt(scoreKey, 0);
|
|
highscores.Add(new HighscoreEntry() { name = playerName, score = score });
|
|
}
|
|
}
|
|
|
|
for(int i=0; i < highscores.Count; i++){
|
|
GameObject leaderboardItem = Instantiate(leaderboardItemPrefab, leaderboardItemsParent);
|
|
TMP_Text txtName = leaderboardItem.transform.GetChild(0).GetComponent<TMP_Text>();
|
|
TMP_Text txtScore = leaderboardItem.transform.GetChild(1).GetComponent<TMP_Text>();
|
|
|
|
txtName.text = highscores[i].name;
|
|
txtScore.text = highscores[i].score.ToString("n0");
|
|
if(i == 0){
|
|
RectTransform rectTransform = leaderboardItem.GetComponent<RectTransform>();
|
|
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, rectTransform.sizeDelta.y * 1.4f);
|
|
|
|
txtName.color = Color.Lerp(Color.green, Color.white, 0.7f);
|
|
txtScore.color = Color.Lerp(Color.green, Color.white, 0.7f);
|
|
txtName.fontSize *= 1.4f;
|
|
txtScore.fontSize *= 1.4f;
|
|
}else if(i == 1){
|
|
RectTransform rectTransform = leaderboardItem.GetComponent<RectTransform>();
|
|
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, rectTransform.sizeDelta.y * 1.2f);
|
|
|
|
txtName.color = Color.Lerp(Color.green, Color.white, 0.3f);
|
|
txtScore.color = Color.Lerp(Color.green, Color.white, 0.3f);
|
|
txtName.fontSize *= 1.2f;
|
|
txtScore.fontSize *= 1.2f;
|
|
}
|
|
}
|
|
}
|
|
}
|