79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using Touka.GameLogic;
|
||
using UnityEngine;
|
||
using UnityEngine.SocialPlatforms;
|
||
|
||
/// <summary>
|
||
/// Game Center 排行榜类
|
||
///
|
||
/// 1. 初始化 init;(StaticOtherConfig 里LeaderBoard_Switch开关打开,自动调用)
|
||
/// 2. 上报分数 ReportScore;(分数,排行榜ID)
|
||
/// 3. 显示排行榜 ShowLeaderboard;
|
||
/// </summary>
|
||
public class LeaderBoards : ToukaSingletonMonoBehaviour<LeaderBoards>
|
||
{
|
||
//public string leaderBoardId = "BossFightScore";
|
||
|
||
/// <summary>
|
||
/// 初始化
|
||
/// </summary>
|
||
public void init()
|
||
{
|
||
AuthenticateToGameCenter();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 登录Game Center
|
||
/// </summary>
|
||
private bool isAuthenticatedToGameCenter;
|
||
public void AuthenticateToGameCenter()
|
||
{
|
||
#if UNITY_IPHONE && !UNITY_EDITOR
|
||
Social.localUser.Authenticate(success =>
|
||
{
|
||
if (success)
|
||
{
|
||
Debug.Log("[LeaderBoards] Authentication successful");
|
||
}
|
||
else
|
||
{
|
||
Debug.Log("[LeaderBoards] Authentication failed");
|
||
}
|
||
});
|
||
#endif
|
||
}
|
||
|
||
/// <summary>
|
||
/// 上报分数到Game Center
|
||
/// </summary>
|
||
/// <param name="score"> 分数 </param>
|
||
/// <param name="leaderboardID"> 排行榜ID (Appstore后台创建的)</param>
|
||
public void ReportScore(long score, string leaderboardID)
|
||
{
|
||
#if UNITY_IPHONE && !UNITY_EDITOR
|
||
Debug.Log("Reporting score " + score + " on leaderboard " + leaderboardID);
|
||
Social.ReportScore(score, leaderboardID, success =>
|
||
{
|
||
if (success)
|
||
{
|
||
Debug.Log("[LeaderBoards] Reported score successfully");
|
||
}
|
||
else
|
||
{
|
||
Debug.Log("[LeaderBoards] Failed to report score");
|
||
}
|
||
});
|
||
#endif
|
||
}
|
||
|
||
/// <summary>
|
||
/// 展示排行榜
|
||
/// </summary>
|
||
public void ShowLeaderboard()
|
||
{
|
||
#if UNITY_IPHONE && !UNITY_EDITOR
|
||
Social.ShowLeaderboardUI();
|
||
#endif
|
||
}
|
||
} |