2017-09-27 3 views
0

私は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文のテストを呼び出さないのですか?

答えて

0

これを読んでいる人のために、上記のコードは実際のデバイスで実際に動作します。それはシミュレータ上ではうまくいかないことが分かります。

+0

シミュレータのゲームセンターアカウントをリセットして機能させる必要があります。あなたは多分あなたの様々なテストをするときに3回落ちたので、それは永久に減少する – Knight0fDragon

関連する問題