Leaderboard Season
1. Điều kiện tiên quyết
Trong game cần phải tích hợp GSM SDK: xem hướng dẫn
Game đã được nhập dữ liệu Leaderboard Season ở GSM CMS. Phần này nếu chưa biết, thì liên hệ tuyennv (skype: nguyenvantuyen_12a9) để được hướng dẫn
Game đã có FancyScrollView. Nếu chưa có thì tải và import: Download tại đây
2. Download
Tìm plugin có tên: LeaderboardSeason_v0.0.0.2.unitypackage
Khi import có thể xem sample trong plugin
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
Code mẫu:
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);
}
}
Mỗi leaderboard được phân loại theo scoreType
Ảnh demo:

Last updated