我正在尝试将Google Play排行榜与play-games-plugin-for-unity插件的帮助集成到我的游戏中。 它工作正常,承诺排行榜一个人,只有一件事不起作用。当我打电话给排行榜时
//LEADERBOARD
if (GUI.Button(leaderboardButton, "Leaderboard"))
{
((PlayGamesPlatform)Social.Active).ShowLeaderboardUI(Constants.LEADERBOARDID);
// Social.ShowLeaderboardUI();
}
它打开了我看到所有排行榜的窗口。但是我给了一个特定的身份证。这将是我期望从Social.ShowLeaderboardUI()行开始的行为;被注释掉了。具有给定Id(隐藏在Constants.LEADERBOARDID之后)的重载应该根据文档启动特定的排行榜UI。有人知道这是一个问题(没有看到任何关于GitHub的报道)以及如何解决它?这不是一个大问题,但一次点击比两次好。
我尝试了一些有趣的事情。我将Id更改为某个错误的值。仍然是相同的行为(打开所有排行榜的窗口)。当然,提交分数不再适用。
答案 0 :(得分:5)
好的,我在插件的源代码中发现了错误,修复了它并解决了问题。所以我在这里提出修复,如果有人需要它。它位于LeaderboardManager类中。
这就是ShowUI的调用方式:
internal void ShowUI(string leaderboardId, Action callback) {
Misc.CheckNotNull(callback);
C.LeaderboardManager_ShowAllUI(mServices.AsHandle(), Callbacks.InternalShowUICallback,
Callbacks.ToIntPtr(callback));
}
这应该是正确的版本
internal void ShowUI(string leaderboardId, Action callback) {
Misc.CheckNotNull(callback);
C.LeaderboardManager_ShowUI(mServices.AsHandle(),leaderboardId, Callbacks.InternalShowUICallback,
Callbacks.ToIntPtr(callback));
}
}
看到区别? C.LeaderboardManager_Show 全部 UI而不是C.LeaderboardManager_ShowUI被调用。