リーダーボードをテストしようとしています。私はこれをします:
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal;
leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboardRequest.category = self.gameData.leaderboardId;
leaderboardRequest.range = NSMakeRange(1,10);
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
// Handle the error.
}
if (scores != nil)
{
for (GKScore *score in scores) {
NSLog(@"score retrieved: %lld", score.value);
}
}
}];
}
ユーザー A と一緒に 1 つのデバイスでゲームをプレイし、137 のスコアを取得しました。リーダーボードを照会すると、137 のスコアが返されました。別のデバイスでユーザー B を使用してプレイし、スコア 243 を取得しました。リーダーボードを照会すると、スコア 243 しか返されません。
では、ログインしているユーザーからのみスコアが返されるのはなぜですか? カスタム リーダーボードを作成するには、明らかに全員のスコアが必要です。GKLeaderboardPlayerScopeGlobal は、ローカル ユーザーのスコアだけでなく、すべてのスコアを取得する必要があることを理解しています。