/// <summary> /// Loads a set of scores using the default parameters of the given leaderboard. /// This returns the 25 scores that are around the local player's score /// in the Global userScope and AllTime timeScope. /// Note that each load score request is added into a queue and the /// next request is called after the callback of previous request has been invoked. /// </summary> /// <param name="leaderboardName">Leaderboard name.</param> /// <param name="callback">Callback receives the leaderboard name and an array of loaded scores.</param> public static void LoadScores(string leaderboardName, Action <string, IScore[]> callback) { if (!IsInitialized()) { Debug.Log("LoadScores FAILED: user is not logged in."); return; } Leaderboard ldb = GetLeaderboardByName(leaderboardName); if (ldb == null) { Debug.Log("LoadScores FAILED: unknown leaderboard name."); return; } // Create new request LoadScoreRequest request = new LoadScoreRequest(); request.leaderboardName = ldb.Name; request.leaderboardId = ldb.Id; request.callback = callback; request.useLeaderboardDefault = true; request.loadLocalUserScore = false; // Add request to the queue loadScoreRequests.Add(request); DoNextLoadScoreRequest(); }
/// <summary> /// Loads the local user's score from the specified leaderboard. /// Note that each load score request is added into a queue and the /// next request is called after the callback of previous request has been invoked. /// </summary> /// <param name="leaderboardName">Leaderboard name.</param> /// <param name="callback">Callback receives the leaderboard name and the loaded score.</param> public static void LoadLocalUserScore(string leaderboardName, Action <string, IScore> callback) { if (!IsInitialized()) { Debug.LogFormat("Failed to load local user's score from leaderboard {0}: user is not logged in.", leaderboardName); if (callback != null) { callback(leaderboardName, null); } return; } Leaderboard ldb = GetLeaderboardByName(leaderboardName); if (ldb == null) { Debug.LogFormat("Failed to load local user's score: unknown leaderboard name {0}.", leaderboardName); if (callback != null) { callback(leaderboardName, null); } return; } // Create new request LoadScoreRequest request = new LoadScoreRequest(); request.leaderboardName = ldb.Name; request.leaderboardId = ldb.Id; request.callback = delegate(string ldbName, IScore[] scores) { if (scores != null) { if (callback != null) { callback(ldbName, scores[0]); } } else { if (callback != null) { callback(ldbName, null); } } }; request.useLeaderboardDefault = false; request.loadLocalUserScore = true; request.fromRank = -1; request.scoreCount = -1; request.timeScope = TimeScope.AllTime; request.userScope = UserScope.FriendsOnly; // Add request to the queue loadScoreRequests.Add(request); DoNextLoadScoreRequest(); }
/// <summary> /// Loads the set of scores from the specified leaderboard within the specified timeScope and userScope. /// The range is defined by starting position fromRank and the number of scores to retrieve scoreCount. /// Note that each load score request is added into a queue and the /// next request is called after the callback of previous request has been invoked. /// </summary> /// <param name="leaderboardName">Leaderboard name.</param> /// <param name="fromRank">The rank of the first score to load.</param> /// <param name="scoreCount">The total number of scores to load.</param> /// <param name="timeScope">Time scope.</param> /// <param name="userScope">User scope.</param> /// <param name="callback">Callback receives the leaderboard name and an array of loaded scores.</param> public static void LoadScores(string leaderboardName, int fromRank, int scoreCount, TimeScope timeScope, UserScope userScope, Action <string, IScore[]> callback) { // IMPORTANT: On Android, the fromRank argument is ignored and the score range always starts at 1. // (This is not the intended behavior according to the SocialPlatform.Range documentation, and may simply be // a bug of the current (0.9.34) GooglePlayPlatform implementation). if (!IsInitialized()) { if (Debug.isDebugBuild) { Debug.Log("LoadScores FAILED: user is not logged in."); } return; } Leaderboard ldb = GetLeaderboardByName(leaderboardName); if (ldb == null) { if (Debug.isDebugBuild) { Debug.Log("LoadScores FAILED: unknown leaderboard name."); } return; } // Create new request LoadScoreRequest request = new LoadScoreRequest(); request.leaderboardName = ldb.Name; request.leaderboardId = ldb.Id; request.callback = callback; request.useLeaderboardDefault = false; request.loadLocalUserScore = false; request.fromRank = fromRank; request.scoreCount = scoreCount; request.timeScope = timeScope; request.userScope = userScope; // Add request to the queue loadScoreRequests.Add(request); DoNextLoadScoreRequest(); }
/// <summary> /// Loads a set of scores using the default parameters of the given leaderboard. /// This returns the 25 scores that are around the local player's score /// in the Global userScope and AllTime timeScope. /// Note that each load score request is added into a queue and the /// next request is called after the callback of previous request has been invoked. /// </summary> /// <param name="leaderboardName">Leaderboard name.</param> /// <param name="callback">Callback receives the leaderboard name and an array of loaded scores.</param> public static void LoadScores(string leaderboardName, Action <string, IScore[]> callback) { if (!IsInitialized()) { Debug.LogFormat("Failed to load scores from leaderboard {0}: user is not logged in.", leaderboardName); if (callback != null) { callback(leaderboardName, new IScore[0]); } return; } Leaderboard ldb = GetLeaderboardByName(leaderboardName); if (ldb == null) { Debug.LogFormat("Failed to load scores: unknown leaderboard name {0}", leaderboardName); if (callback != null) { callback(leaderboardName, new IScore[0]); } return; } // Create new request LoadScoreRequest request = new LoadScoreRequest(); request.leaderboardName = ldb.Name; request.leaderboardId = ldb.Id; request.callback = callback; request.useLeaderboardDefault = true; request.loadLocalUserScore = false; // Add request to the queue loadScoreRequests.Add(request); DoNextLoadScoreRequest(); }