【发布时间】:2018-09-13 08:21:38
【问题描述】:
当我认为分数有效时,我想发送一个带有我分数的特定标签以尝试消除欺诈分数(如quality checklist 上的第 3.5 点所建议),但我无法找到如何在任何地方使用它。我知道如何发送标签,但我在哪里告诉Google Play Game Services 哪个标签是好标签?
【问题讨论】:
标签: android unity3d google-play-games leaderboard
当我认为分数有效时,我想发送一个带有我分数的特定标签以尝试消除欺诈分数(如quality checklist 上的第 3.5 点所建议),但我无法找到如何在任何地方使用它。我知道如何发送标签,但我在哪里告诉Google Play Game Services 哪个标签是好标签?
【问题讨论】:
标签: android unity3d google-play-games leaderboard
按照这些步骤进行
第 1 步:创建排行榜 对于一个新游戏 要为未发布的新游戏创建排行榜,请转到您游戏的 Google Play 控制台条目,选择左侧的排行榜选项卡,然后单击添加新排行榜按钮。
点击保存,您的排行榜将在“准备发布”模式下可用。发布游戏后,您的所有游戏排行榜都会随之发布。
对于已发布的游戏 要为已发布的游戏创建额外的排行榜,请执行与上述相同的步骤。唯一的区别是“保存”按钮将被重新标记为“另存为草稿”,并且您的排行榜将处于“准备测试”模式。有关测试游戏更新版本的更多信息,请参阅发布您的游戏更改。
一旦你测试了你的排行榜并且对它感到满意,你就可以使用新的排行榜重新发布你的游戏,它们将被推向世界。
第二步:更新玩家的分数 以下代码 sn-p 显示了您的应用如何更新玩家的分数:
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
.submitScore(getString(R.string.leaderboard_id), 1337);
一个好的做法是在您的 strings.xml 文件中定义排行榜 ID,以便您的游戏可以通过资源 ID 引用排行榜。在调用更新和加载玩家分数时,请务必遵循这些最佳做法以避免超出您的 API 配额。
第 3 步:显示排行榜 要显示排行榜,请调用 LeaderboardsClient.getLeaderboardIntent() 以获取创建默认排行榜用户界面的 Intent。然后,您的游戏可以通过调用 startActivityForResult 来调出 UI。
以下代码 sn-p 显示了您的应用如何更新玩家的分数。在代码 sn-p 中,RC_LEADERBOARD_UI 是请求代码的任意整数。
private static final int RC_LEADERBOARD_UI = 9004;
private void showLeaderboard() {
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
.getLeaderboardIntent(getString(R.string.leaderboard_id))
.addOnSuccessListener(new OnSuccessListener<Intent>() {
@Override
public void onSuccess(Intent intent) {
startActivityForResult(intent, RC_LEADERBOARD_UI);
}
});
}
请注意,即使没有返回结果,我们也必须使用 startActivityForResult 以便 API 可以获取调用包的身份。
【讨论】: