Files
HelixJump/Assets/DarkMatter/Code/Presentation/UI/LeaderBoardController.cs
2025-12-17 13:52:10 -08:00

47 lines
1.2 KiB
C#

using Darkmatter.Core;
using Unity.Services.Leaderboards;
using UnityEngine;
namespace Darkmatter.Presentation
{
public class LeaderBoardController : ILeaderBoardController
{
private const string leaderBoardID = "helix_leaderboard";
private LeaderBoardView leaderBoardView;
public LeaderBoardController( LeaderBoardView _leaderBoardView )
{
this.leaderBoardView = _leaderBoardView;
leaderBoardView.ExitButton.onClick.AddListener(OnExitBtnClicked);
}
private void OnExitBtnClicked()
{
Debug.Log("ExitBtnClicked From LeaderBoard");
}
public void ShowLeaderBoard()
{
LoadLeaderBoard();
leaderBoardView.Show();
}
async void LoadLeaderBoard()
{
var score = await LeaderboardsService.Instance.GetScoresAsync(leaderBoardID, new GetScoresOptions { Limit = 10 });
int rank = 1;
foreach(var entry in score.Results)
{
leaderBoardView.UpdateData(rank,entry.PlayerName,entry.Score.ToString());
rank++;
}
}
public void HideLeaderBoard()
{
leaderBoardView.Hide();
}
}
}