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