私はSpriteKitを使用していますが、ユーザーはGameCenterにサインインして次のメニューシーン(表示名、レベルなど)に表示される重要なゲームデータを読み込むランディング画面にアプリケーションを開きます。データをロードしてGameCenterのログインに成功した後、SpriteKitシーンを切り替えるにはどうすればよいですか?
次のシーンに移動する前に、すべてがロードされていることを確認するにはどうすればよいですか?
私は以下の単純化されたバージョンを使用してテストを試みましたが、更新機能にあっても実行されたことはありませんでした。
override func update(_ currentTime: CFTimeInterval) {
// This doesn't seem to ever be called.
if(GKLocalPlayer.localPlayer().isAuthenticated) {
let transition = SKTransition.fade(with: UIColor.clear, duration: 1.0)
let scene = Menu(size: (view?.bounds.size)!)
scene.scaleMode = .aspectFill
self.view?.presentScene(scene, transition: transition)
print("Changed to Menu scene")
}
}
それは私が探していることは、適切なデータがそのシーンに引っ張られ、取り込むことができた後、メニュー画面を表示するための非同期ディスパッチでいる可能性があります - とその間に着陸シーンを表示?私はそれがどのように機能するか、それが正しい解決策であるかどうか完全には分かっていません。ここのアドバイスは非常に高く評価されます。
しかし、なぜ更新機能はif文のテストを呼び出さないのですか?
シミュレータのゲームセンターアカウントをリセットして機能させる必要があります。あなたは多分あなたの様々なテストをするときに3回落ちたので、それは永久に減少する – Knight0fDragon