added leaderboard

This commit is contained in:
MrTorex committed 2026-03-08 21:56:20 +03:00
1 parent 51b5659f4a
commit 8a9fe611e0
9 files changed
+1606 -25

No files matched your search

+16 -2
View File
@@ -1,19 +1,33 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Code.Saves
{
[Serializable]
public class LeaderboardEntry
{
public string playerName;
public int score;
public LeaderboardEntry(string name, int score)
{
playerName = name;
this.score = score;
}
}
[Serializable]
public class GameData
{
public int bodyMaterialIndex;
public int faceMaterialIndex;
public int hatIndex;
public Color platformColor = Color.white;
public Color bonusColor = Color.white;
public string playerName = "Player";
public int highScore;
public List<LeaderboardEntry> leaderboard = new List<LeaderboardEntry>();
}
}
+16 -4
View File
@@ -1,3 +1,4 @@
using Code.Saves;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
@@ -76,10 +77,21 @@ namespace Code.UI
private void SaveScore()
{
var playerName = nameInputField.text;
if (string.IsNullOrEmpty(playerName))
playerName = "Player";
Debug.Log($"Saved: {playerName} - {_coins}");
var data = SaveManager.Load();
var currentName = string.IsNullOrEmpty(nameInputField.text) ? "Player" : nameInputField.text;
data.playerName = currentName;
data.leaderboard.Add(new Saves.LeaderboardEntry(currentName, _coins));
data.leaderboard.Sort((a, b) => b.score.CompareTo(a.score));
if (data.leaderboard.Count > 10)
{
data.leaderboard.RemoveRange(10, data.leaderboard.Count - 10);
}
SaveManager.Save(data);
}
private void OnDestroy()
+43
View File
@@ -0,0 +1,43 @@
using TMPro;
using UnityEngine;
using Code.Saves;
using System.Text;
using UnityEngine.SceneManagement;
namespace Code.UI
{
public class LeaderboardController : MonoBehaviour
{
[SerializeField] private TMP_Text leaderboardText;
private void Start()
{
DisplayLeaderboard();
}
private void DisplayLeaderboard()
{
var data = SaveManager.Load();
if (data.leaderboard == null || data.leaderboard.Count == 0)
{
leaderboardText.text = "No records yet!";
return;
}
var sb = new StringBuilder();
for (var i = 0; i < data.leaderboard.Count; i++)
{
var entry = data.leaderboard[i];
sb.AppendLine($"{i + 1}. {entry.playerName} - {entry.score} coins");
}
leaderboardText.text = sb.ToString();
}
public void LoadMenu()
{
SceneManager.LoadScene("MainMenu");
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 982ad72e6a8749cc9b04213879b95957
timeCreated: 1772995731
+1 -1
View File
@@ -29,7 +29,7 @@ namespace Code.UI
{
playButton.onClick.AddListener(() => LoadScene("Gameplay"));
customizeButton.onClick.AddListener(() => LoadScene("Customization"));
leaderboardButton.onClick.AddListener(() => Debug.Log("Leaderboard"));
leaderboardButton.onClick.AddListener(() => LoadScene("Leaderboard"));
exitButton.onClick.AddListener(Application.Quit);
AnimateMenu();
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2aff78990d730afd88873871d2564d6a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -216,25 +216,44 @@ MonoBehaviour:
m_AtlasPopulationMode: 1
InternalDynamicOS: 0
m_GlyphTable:
- m_Index: 978
- m_Index: 1020
m_Metrics:
m_Width: 55
m_Height: 61
m_HorizontalBearingX: 4
m_HorizontalBearingY: 60
m_Width: 51
m_Height: 45
m_HorizontalBearingX: 5
m_HorizontalBearingY: 45
m_HorizontalAdvance: 62
m_GlyphRect:
m_X: 10
m_Y: 10
m_Width: 55
m_Height: 61
m_Width: 51
m_Height: 45
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 995
m_Metrics:
m_Width: 37
m_Height: 45
m_HorizontalBearingX: 5
m_HorizontalBearingY: 45
m_HorizontalAdvance: 46
m_GlyphRect:
m_X: 10
m_Y: 74
m_Width: 37
m_Height: 45
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
m_CharacterTable:
- m_ElementType: 1
m_Unicode: 1057
m_GlyphIndex: 978
m_Unicode: 1099
m_GlyphIndex: 1020
m_Scale: 1
- m_ElementType: 1
m_Unicode: 1074
m_GlyphIndex: 995
m_Scale: 1
m_AtlasTextures:
- {fileID: 28268798066460806}
@@ -249,17 +268,25 @@ MonoBehaviour:
m_UsedGlyphRects:
- m_X: 0
m_Y: 0
m_Width: 74
m_Height: 80
m_FreeGlyphRects:
m_Width: 70
m_Height: 64
- m_X: 0
m_Y: 80
m_Width: 511
m_Height: 431
- m_X: 74
m_Y: 64
m_Width: 56
m_Height: 64
m_FreeGlyphRects:
- m_X: 70
m_Y: 0
m_Width: 437
m_Width: 441
m_Height: 511
- m_X: 0
m_Y: 128
m_Width: 511
m_Height: 383
- m_X: 56
m_Y: 64
m_Width: 455
m_Height: 447
m_FontFeatureTable:
m_MultipleSubstitutionRecords: []
m_LigatureSubstitutionRecords: []
@@ -489,6 +516,276 @@ MonoBehaviour:
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 827
- m_FirstAdjustmentRecord:
m_GlyphIndex: 964
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -4.8291016
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1020
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 979
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -3.7792969
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1020
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 993
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 2003134806
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 994
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 1145356288
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 997
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 998
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 1143275520
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 999
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 1281
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1000
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 1101004800
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -1.9736328
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1004
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1005
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 1260
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1007
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 1
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1010
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -1.8896484
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1011
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -1.8896484
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1012
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: -1082130432
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1013
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -3.8632812
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1016
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -2.8554688
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1019
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 995
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -0.9658203
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 1024
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: -1082130432
m_MarkToBaseAdjustmentRecords: []
m_MarkToMarkAdjustmentRecords: []
m_ShouldReimportFontFeatures: 0
@@ -608,7 +905,7 @@ Texture2D:
m_ColorSpace: 0
m_PlatformBlob:
image data: 262144
_typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607090b0d0f1111121313121111100d0b090706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104060c10121315181a1c1d1e1f1f201f1e1d1c1a18151312100c06040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d1113171c1f20222427292a2b2c2c2c2c2b2a29272522201f1c1713100c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e13181d2023282c2d2f31333637383839393838373634312f2d2c28231f1c18120d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Line truncated
_typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406131313131313131313131313131313131313131212110f0d0b080705020000000000000000000004090d0f0f13131313131311100e0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c1013202020202020202020202020202020202020201f1e1e1c1a171514120e090501000000000002091015191b1c2020202020201e1d1b17120b040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a29272422211e1a14110d08020000030c141b212528292d2d2d2d2d2d2b2a27231d160e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151d23292c393939393939393939393939393939393939393938373633312e2d2a26201e19130c07000c151e262c3135363939393939393736332e2820170e040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Line truncated
m_StreamData:
serializedVersion: 2
offset: 0