leaderboard added

This commit is contained in:
Mausham
2025-12-17 13:52:10 -08:00
parent f8fabdcfff
commit ff062d4c3d
26 changed files with 2607 additions and 124 deletions

View File

@@ -5,7 +5,8 @@
"GUID:8bce7b1d1a7647841855dfbbfa883cd6",
"GUID:b0214a6008ed146ff8f122a6a9c2f6cc",
"GUID:6055be8ebefd69e48b49212b09b47b2f",
"GUID:219208e14f3a1e1439abafd1ff0ae402"
"GUID:219208e14f3a1e1439abafd1ff0ae402",
"GUID:2073209246492244c9ad62c89d8d37bb"
],
"includePlatforms": [],
"excludePlatforms": [],

View File

@@ -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()

View File

@@ -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;

View File

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 7ae01ef8b9cad98488971219f0be0696

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

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: baefee10d6992d64caaa7856e0e1ba65