私はゲームを構築しています。各シーンのメイン ViewController とサブ コントローラー: 開始画面とゲーム レベル
起動時に StartScreen を表示します。次に、再生ボタンが押されると、ゲーム シーンを表示します (コントローラーを追加します)。
ゲームが終了したら、スタート画面を提示します。
問題 : 開始画面が表示されず、ゲーム レベルがそのまま残ります。
コードは実際に呼び出され、SKView.scene は正しいもの (開始画面) への参照を保持します。しかし、視覚的には何も変わりません。
public func gameEnded() {
print("game ended", skView.scene)
gameSceneController.willMove(toParent: nil)
gameSceneController.removeFromParent()
skView.presentScene(startScene)
print(skView.scene)
}
ただし、presentScene メソッドにトランジション パラメーターを追加すると、すべてが意図したとおりに機能します... 開始画面がゲーム シーンに置き換わります。
public func gameEnded() {
print("game ended", skView.scene)
gameSceneController.willMove(toParent: nil)
gameSceneController.removeFromParent()
skView.presentScene(startScene, transition: .crossFade(withDuration: 0.2)) //the ONLY difference in the whole code base
print(skView.scene)
}
何が原因でしょうか?
注: 現在、Xcode 11 beta 7 を使用しています。