如何在 tvOS 中打开 GameCenter

How to open GameCenter in tvOS

如何在 tvOS 中打开游戏中心排行榜?我已将此代码用于我的 iPhone 游戏,'leaderboardIdentifier' 在 tvOS 上不可用。

我计划在 AppleTV 上使用相同的排行榜(这将是相同的游戏)。

非常感谢您的帮助, 斯特凡

    @IBAction func handleGameCenter(sender: UIButton) {
        let gcViewController = GKGameCenterViewController()
        gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
        gcViewController.leaderboardIdentifier = gamePrefix + "Leaderboard"
        gcViewController.gameCenterDelegate = self

        // Show leaderboard
        self.presentViewController(gcViewController, animated: true, completion: nil)
    }

    func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
        gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
    }

这似乎有效:

GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil)
{
    gameCenterController.gameCenterDelegate = self;
    [self presentViewController: gameCenterController animated: YES completion:nil];
}

.viewState 和 .leaderboardIdentifier 在 tvOS 上不可用,因此您可以使用该代码打开 GC 控制器,但页面会说 "No data available".

我也遇到了 "No data available" 屏幕的问题,但最终解决了。这对我在 tvOS 上打开 gamecenter 排行榜很有帮助:

  1. 打开 Assets.xcassets(您设置应用的同一文件 icon/launchscreen)
  2. 右键单击 appicon/launchsreen 和 select 游戏中心 -> 新 Apple TV 排行榜
  3. 为新排行榜添加图形
  4. 当排行榜在右侧面板的资产文件中 select 时,找到标识符字段并将排行榜的标识符放在那里
  5. 使用此代码打开排行榜:

    GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init];
    gcViewController.gameCenterDelegate = self;
    [self presentViewController:gcViewController animated:YES completion:nil];