我正在开发游戏。每个场景都有一个主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)
}
任何想法可能是什么原因?
Nota:我目前正在使用Xcode 11 beta 7