Cần sửa lại appId trong GSMObject của LoadingScene, lấy giá trị appId tương ứng với dự án
3. Sử dụng
3.1 Add Script LeaderboardSeasonManager
Cần add Script này vào game, nơi sử dụng Leaderboard
3.2 Tạo Script LeaderboardSeasonSampleController
Mục đích để quản lý show leaderboard
Sử dụng 2 Prefab: LeaderboardSeasonPanel và LeaderboardSeasonFinishPanel
+ LeaderboardSeasonPanel : Là prefab hiển thị leaderboard
+ LeaderboardSeasonFinishPanel: Là prefab hiển thị khi kết thúc 1 event leaderboard
using GSM.Events;
using GSM.LeaderboardSeason;
using UnityEngine;
public class LeaderBoardSeasonSampleController : MonoBehaviour
{
[SerializeField] private LeaderboardSeasonPanelController leaderboardPrefab;
[SerializeField] private LeaderboardSeasonFinishPanel leaderboardResultPrefab;
[SerializeField] private int score = 3370;
[SerializeField] private string scoreType = "star";
private void Awake()
{
LeaderboardSeasonManager.SetFuncGetPlayerName(() =>
{
//Trả về tên của người chơi hiện tại
//Phía game sẽ thay đổi giá trị này tương ứng với logic của game.
return "playerName";
});
//Nhận sự kiện khi có event được finish
LeaderboardSeasonManager.OnLoadEventFinishCompleted += OnLoadEventFinishCompleted;
}
private void OnLoadEventFinishCompleted(GSMLeaderboadSeason.EventFinishedData[] eventFinishes)
{
if (LeaderboardSeasonManager.Instance.HasFinishedEventLeaderBoard)
{
var resultPanel = Instantiate(leaderboardResultPrefab);
resultPanel.SetOnClaimReward((reward) =>
{
Debug.Log(reward);
});
var eventFinished = eventFinishes[0];
resultPanel.Show(eventFinished);
}
}
//Hiển thị leaderboard
public void ShowLeaderboard()
{
if (!LeaderboardSeasonManager.Instance.HasEventLeaderBoard) return;
Instantiate(leaderboardPrefab).GetComponent<LeaderboardSeasonPanelController>().Init(scoreType);
}
public void UpdateScore()
{
//Gửi điểm
LeaderboardSeasonManager.Instance.SendScore(score, scoreType);
}
}