leaderboard added
This commit is contained in:
@@ -5,7 +5,8 @@
|
||||
"GUID:8bce7b1d1a7647841855dfbbfa883cd6",
|
||||
"GUID:b0214a6008ed146ff8f122a6a9c2f6cc",
|
||||
"GUID:6055be8ebefd69e48b49212b09b47b2f",
|
||||
"GUID:219208e14f3a1e1439abafd1ff0ae402"
|
||||
"GUID:219208e14f3a1e1439abafd1ff0ae402",
|
||||
"GUID:2073209246492244c9ad62c89d8d37bb"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Darkmatter.Core;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using VContainer;
|
||||
@@ -14,11 +15,18 @@ namespace Darkmatter.Presentation
|
||||
[Inject] private IAudioController IaudioController;
|
||||
[Inject] private IGameSession IgameSession;
|
||||
[Inject] private IGameScreenController IgameScreenController;
|
||||
[Inject] private ILeaderBoardController IleaderBoardController;
|
||||
public DeathScreenController(DeathScreenView _deathScreenView)
|
||||
{
|
||||
deathScreenView = _deathScreenView;
|
||||
deathScreenView.restartBtn.onClick.AddListener(OnRestartButtonClicked);
|
||||
deathScreenView.exitBtn.onClick.AddListener(OnExitButtonClicked);
|
||||
deathScreenView.leaderBoardBtn.onClick.AddListener(OnLeaderBoardBtnClicked);
|
||||
}
|
||||
|
||||
private void OnLeaderBoardBtnClicked()
|
||||
{
|
||||
IleaderBoardController.ShowLeaderBoard();
|
||||
}
|
||||
|
||||
public void ShowDeathScreen()
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace Darkmatter.Presentation
|
||||
[SerializeField] private GameObject deathScreen;
|
||||
public Button restartBtn;
|
||||
public Button exitBtn;
|
||||
public Button leaderBoardBtn;
|
||||
public TextMeshProUGUI score;
|
||||
public TextMeshProUGUI highScore;
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7ae01ef8b9cad98488971219f0be0696
|
||||
33
Assets/DarkMatter/Code/Presentation/UI/LeaderBoardView.cs
Normal file
33
Assets/DarkMatter/Code/Presentation/UI/LeaderBoardView.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using Darkmatter.Domain;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Darkmatter.Presentation
|
||||
{
|
||||
public class LeaderBoardView : MonoBehaviour
|
||||
{
|
||||
public GameObject leaderBoardScreen;
|
||||
public Button ExitButton;
|
||||
public Transform LBDataContainer;
|
||||
public LeaderboardData LBplayerData;
|
||||
|
||||
public void Show()
|
||||
{
|
||||
leaderBoardScreen.SetActive(true);
|
||||
}
|
||||
|
||||
public void UpdateData(int rank,string name, string score)
|
||||
{
|
||||
LeaderboardData data = Instantiate(LBplayerData, LBDataContainer);
|
||||
data.posNumber.text = rank.ToString();
|
||||
data.playerName.text = name;
|
||||
data.playerScore.text = score;
|
||||
}
|
||||
|
||||
public void Hide()
|
||||
{
|
||||
leaderBoardScreen.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: baefee10d6992d64caaa7856e0e1ba65
|
||||
Reference in New Issue
Block a user