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
 | 
						||
    }
 | 
						||
} |