我如何在 ARSKView 中创建暂停菜单?
How would I create a pause menu in ARSKView?
我正在使用 Swift 创建增强现实 Sprite Kit 游戏,我希望实现暂停菜单。我尝试修改 中看到的代码,但无济于事。
我已经能够使用 sceneView.isPaused = true 让 ARSKView 暂停,但仅此而已 - 我的暂停菜单层没有出现。
不是像通常在 SpriteKit
中那样创建 pauseNode
,而是在 ARSKView
.
之上创建另一个视图
在故事板或视图控制器中,添加另一个固定为全屏的视图。这可以是 UIView
或 SKView
,具体取决于您是想使用 UIKit
还是 SpriteKit
来创建菜单(标签、按钮等)。我建议使用 UIKit
,因为它是为构建用户界面而设计的。
视图层次结构如下所示:
-- UIViewController
-- UIView / SKView
-- ARSKView
要在这些视图之间进行通信,请设置一个暂停菜单委托,以便在按下按钮时通知您的视图控制器。
protocol PauseMenuViewDelegate: class {
func pauseMenuUnPauseButtonPressed()
}
在您的暂停菜单视图中:
class PauseMenuView: UIView {
weak var delegate: PauseMenuViewDelegate?
@IBAction func unPauseButtonPressed() {
delegate?.pauseMenuUnPauseButtonPressed()
}
...
}
在您的视图控制器中:
class ViewController: UIViewController {
@IBOutlet weak var pauseMenuView: PauseMenuView! {
didSet { pauseMenuView.delegate = self }
}
...
}
extension ViewController: PauseMenuViewDelegate {
func pauseMenuUnPauseButtonPressed() {
// unpause the game here
}
}
我正在使用 Swift 创建增强现实 Sprite Kit 游戏,我希望实现暂停菜单。我尝试修改
我已经能够使用 sceneView.isPaused = true 让 ARSKView 暂停,但仅此而已 - 我的暂停菜单层没有出现。
不是像通常在 SpriteKit
中那样创建 pauseNode
,而是在 ARSKView
.
在故事板或视图控制器中,添加另一个固定为全屏的视图。这可以是 UIView
或 SKView
,具体取决于您是想使用 UIKit
还是 SpriteKit
来创建菜单(标签、按钮等)。我建议使用 UIKit
,因为它是为构建用户界面而设计的。
视图层次结构如下所示:
-- UIViewController
-- UIView / SKView
-- ARSKView
要在这些视图之间进行通信,请设置一个暂停菜单委托,以便在按下按钮时通知您的视图控制器。
protocol PauseMenuViewDelegate: class {
func pauseMenuUnPauseButtonPressed()
}
在您的暂停菜单视图中:
class PauseMenuView: UIView {
weak var delegate: PauseMenuViewDelegate?
@IBAction func unPauseButtonPressed() {
delegate?.pauseMenuUnPauseButtonPressed()
}
...
}
在您的视图控制器中:
class ViewController: UIViewController {
@IBOutlet weak var pauseMenuView: PauseMenuView! {
didSet { pauseMenuView.delegate = self }
}
...
}
extension ViewController: PauseMenuViewDelegate {
func pauseMenuUnPauseButtonPressed() {
// unpause the game here
}
}