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(); } } }