play-games-plugin-for-unity - 显示特定的排行榜

时间:2014-12-11 16:17:09

标签: android iphone unity3d google-play-services leaderboard

我正在尝试将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更改为某个错误的值。仍然是相同的行为(打开所有排行榜的窗口)。当然,提交分数不再适用。

1 个答案:

答案 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被调用。