首页 > 解决方案 > overlaySKScene 无法通知主 SCNScene

问题描述

我有一个包含 asceneView: SCNView和 SKScene 叠加层的基本游戏sceneView.overlaySKScene = OverlayScene(...)

当在overlaySKScene 中点击一个按钮时,我想通知主sceneView 执行一些动画,然后开始我的游戏。

我已经thouchesBegan按照 Apple 的建议覆盖了 overlaySKScene 中的:

class OverlayScene: SKScene {

 override func touchesBegan(...) {

...

现在我想观察这个按钮点击并执行动画:

observe(\GameViewController.sceneView.overlaySKScene.someProperty) { (selfRef, change) in
            selfRef.setGame(updatedState: someValue)
        }

但我无法观察到 overlaySKScene 及其属性。

通知sceneView来自的正确方法是SKScene什么?

标签: iosswiftscenekit

解决方案


已经有一段时间了,但我想我使用协议来解决这个问题。当按下 SK 按钮时,我想在不同的类中更改 gameState。它工作得很好,但除了声音之外,我对 SKScene 并没有做太多,所以我最终只是在 Scenekit 的顶部做了 UIViews,如果你可以选择的话,这会容易得多。如果没有,那么您可能会搜索视图控制器之间的通信,有几个选项。


推荐阅读