leaderboard added
This commit is contained in:
@@ -21,6 +21,7 @@ namespace Darkmatter.App
|
||||
[SerializeField] private StartScreenView startScreenView;
|
||||
[SerializeField] private DeathScreenView deathScreenView;
|
||||
[SerializeField] private PauseScreenView pauseScreenView;
|
||||
[SerializeField] private LeaderBoardView leaderBoardView;
|
||||
protected override void Configure(IContainerBuilder builder)
|
||||
{
|
||||
builder.RegisterComponent(pool).As<IPool<Platform>>();
|
||||
@@ -36,6 +37,7 @@ namespace Darkmatter.App
|
||||
builder.Register<GameScreenController>(Lifetime.Singleton).WithParameter(gameScreenView).As<IGameScreenController>();
|
||||
builder.Register<PauseScreenController>(Lifetime.Singleton).WithParameter(pauseScreenView).As<IPauseScreenController>();
|
||||
builder.Register<DeathScreenController>(Lifetime.Singleton).WithParameter(deathScreenView).As<IDeathScreenController>();
|
||||
builder.Register<LeaderBoardController>(Lifetime.Singleton).WithParameter(leaderBoardView).As<ILeaderBoardController>();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Darkmatter.Core
|
||||
{
|
||||
public interface ILeaderBoardController
|
||||
{
|
||||
void ShowLeaderBoard();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9b941192dc0fea4d83c6889df709d92
|
||||
@@ -4,7 +4,8 @@
|
||||
"references": [
|
||||
"GUID:8bce7b1d1a7647841855dfbbfa883cd6",
|
||||
"GUID:4307f53044263cf4b835bd812fc161a4",
|
||||
"GUID:b0214a6008ed146ff8f122a6a9c2f6cc"
|
||||
"GUID:b0214a6008ed146ff8f122a6a9c2f6cc",
|
||||
"GUID:6055be8ebefd69e48b49212b09b47b2f"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
|
||||
8
Assets/DarkMatter/Code/Domain/LeaderBoard.meta
Normal file
8
Assets/DarkMatter/Code/Domain/LeaderBoard.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 519b6dff3c0f4154b911953421501a5d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
13
Assets/DarkMatter/Code/Domain/LeaderBoard/LeaderboardData.cs
Normal file
13
Assets/DarkMatter/Code/Domain/LeaderBoard/LeaderboardData.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Darkmatter.Domain
|
||||
{
|
||||
|
||||
public class LeaderboardData : MonoBehaviour
|
||||
{
|
||||
public TextMeshProUGUI posNumber;
|
||||
public TextMeshProUGUI playerName;
|
||||
public TextMeshProUGUI playerScore;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a6ab63c7177ea94478032cb825071368
|
||||
@@ -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