Unity GooglePlayGames LoadScores 总是 returns 没有
Unity GooglePlayGames LoadScores always returns nothing
我正在尝试使用 Google Play Games 从排行榜中获取最高分,但 return 没有任何结果。有人能给我指出正确的方向吗?
public int WorldRecord()
{
int topScore = 0;
PlayGamesPlatform.Instance.LoadScores(
GPGSIds.leaderboard_quick_fire_scores,
LeaderboardStart.TopScores, 1,
LeaderboardCollection.Public,
LeaderboardTimeSpan.AllTime,
(LeaderboardScoreData data) =>
{
topScore = (int)data.Scores[0].value;
});
return topScore;
}
谢谢
PlayGamesPlatform.Instance.LoadScores
异步运行并在完成后执行传递的操作。
但是,您的方法不会等到该请求实际完成,因此只是 returns 默认值 0
已经在 LoadScores
实际完成并提供有效结果之前.
您或许应该使用某种回调,例如
public void WorldRecord(Action<int> onResult)
{
PlayGamesPlatform.Instance.LoadScores(
GPGSIds.leaderboard_quick_fire_scores,
LeaderboardStart.TopScores, 1,
LeaderboardCollection.Public,
LeaderboardTimeSpan.AllTime,
(LeaderboardScoreData data) =>
{
onResult?.Invoke((int)data.Scores[0].value);
});
}
然后传递一个回调,当结果准备好时应该发生什么,例如
WorldRecord(topScore =>
{
Debug.Log($"Top Score: {topScore}");
});
我正在尝试使用 Google Play Games 从排行榜中获取最高分,但 return 没有任何结果。有人能给我指出正确的方向吗?
public int WorldRecord()
{
int topScore = 0;
PlayGamesPlatform.Instance.LoadScores(
GPGSIds.leaderboard_quick_fire_scores,
LeaderboardStart.TopScores, 1,
LeaderboardCollection.Public,
LeaderboardTimeSpan.AllTime,
(LeaderboardScoreData data) =>
{
topScore = (int)data.Scores[0].value;
});
return topScore;
}
谢谢
PlayGamesPlatform.Instance.LoadScores
异步运行并在完成后执行传递的操作。
但是,您的方法不会等到该请求实际完成,因此只是 returns 默认值 0
已经在 LoadScores
实际完成并提供有效结果之前.
您或许应该使用某种回调,例如
public void WorldRecord(Action<int> onResult)
{
PlayGamesPlatform.Instance.LoadScores(
GPGSIds.leaderboard_quick_fire_scores,
LeaderboardStart.TopScores, 1,
LeaderboardCollection.Public,
LeaderboardTimeSpan.AllTime,
(LeaderboardScoreData data) =>
{
onResult?.Invoke((int)data.Scores[0].value);
});
}
然后传递一个回调,当结果准备好时应该发生什么,例如
WorldRecord(topScore =>
{
Debug.Log($"Top Score: {topScore}");
});