Ejemplo n.º 1
0
 private void GetLeaderboardData(string leaderboardID, bool userHasScore, Action <IEnumerable <LeaderboardEntry> > onComplete)
 {
     VoxelBusters.NativePlugins.Leaderboard lb = NPBinding.GameServices.CreateLeaderboardWithGlobalID(leaderboardID);
     lb.MaxResults = 7;
     lb.UserScope  = eLeaderboardUserScope.FRIENDS_ONLY;
     if (userHasScore)
     {
         lb.LoadPlayerCenteredScores((Score[] _scores, Score _localUserScore, string _error) => {
             Debug.Log($"Got leaderboard: {leaderboardID}, with errormsg: {_error}");
             Debug.Log($"leaderboard me: {_localUserScore}");
             Debug.Log($"leaderboard others: {_scores.Length}");
             foreach (Score s in _scores)
             {
                 Debug.Log(s);
             }
             var scores = _scores.Select(s => new LeaderboardEntry(s, false));
             if (_localUserScore.Rank > 0)
             {
                 scores = scores.Append(new LeaderboardEntry(_localUserScore, true)).OrderByDescending(s => s.Rank);
             }
             onComplete(scores);
         });
     }
     else
     {
         lb.LoadTopScores((Score[] _scores, Score _localUserScore, string _error) => {
             onComplete(_scores.Select(s => new LeaderboardEntry(s, false)));
         });
     }
 }