2015-12-04 71 views
2

認爲我遵循了所有必要的步驟來支持我的遊戲中的排行榜(並且它們在iOS上運行得很好),但是在tvOS上無法配置GKGameCenterViewController以顯示特定排行榜,LeaderboardIdentifier屬性很簡單失蹤(就像ViewState):如何在tvOS上顯示GameCenter排行榜?

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。我注意到這會在最終的應用程序包中生成一個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> 

這看起來完全正確的,也是圖像是當然的捆綁。不過,使用上面的代碼來顯示遊戲中心控制器只會給我成就屏幕,沒有別的。

回答

1

您必須將排行榜添加到Assets.xassets。在那裏,你可以進入標識符:

enter image description here

的代碼顯示在排行榜:

@IBAction func openLeaderboard(sender: AnyObject) { 

    let gcViewController = GKGameCenterViewController() 
    gcViewController.gameCenterDelegate = self 
    self.presentViewController(gcViewController, animated: true, completion: nil) 
} 
+0

這就是我所做的。 – Krumelur

+0

好的。我沒有關注這個鏈接。剛剛看到,這是我的問題 – Stefan

+0

對我來說,它工作得很好。我想你已經成功創建了iTunesConnect中的排行榜,並且你在iOS和AppleTV遊戲中使用了相同的排行榜? – Stefan

相關問題