I think我按照所有必需的步骤在我的游戏中支持排行榜(它们在 iOS 上运行得很好),但是在 tvOS 上无法配置GKGameCenterViewController
要显示特定的排行榜,LeaderboardIdentifier
属性只是丢失了(就像ViewState
):
var leaderboardController = new GKGameCenterViewController ();
// Unavailable on tvOS
/*
leaderboardController.ViewState = GKGameCenterViewControllerState.Default;
leaderboardController.LeaderboardIdentifier = "myLeaderboardId";
*/
leaderboardController.Finished += (sender, e) =>
{
leaderboardController.DismissViewController (true, null);
}
PresentViewController (leaderboardController, true, null);
我没有使用这些属性,而是按照说明进行操作here https://stackoverflow.com/questions/32770956/how-to-open-gamecenter-in-tvos。我注意到这会生成一个GKGameCenterContent.plist
最终应用程序包中的文件。我仔细检查了内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GKLeaderboards</key>
<array>
<dict>
<key>identifier</key>
<string>myLeaderboardId</string>
<key>onDemandResourcesTag</key>
<string>com.apple.gamecenter.Leaderboard</string>
<key>posterImageName</key>
<string>Leaderboard/Poster</string>
</dict>
</array>
</dict>
</plist>
这看起来绝对正确,图像当然也在捆绑包中。尽管如此,使用上面的代码显示游戏中心控制器只会给我成就屏幕,而不会显示其他内容。
您必须向 Assets.xassets 添加排行榜。您可以在此处输入标识符:
显示排行榜的代码:
@IBAction func openLeaderboard(sender: AnyObject) {
let gcViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self
self.presentViewController(gcViewController, animated: true, completion: nil)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)