47 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|