我有一个类似的SceneKit视图:
mySCNKitView.scene = a SCNScene
mySCNKitView.overlaySKScene = a SKScene
现在,如果我在userInteractionEnabled
上设置overlaySKScene
属性,则无效,即它始终处于启用状态,因此我无法禁用overlaySKScene
的用户互动! ?
所有添加到overlaySKScene
的子SKNode仍然会收到用户互动...
即。这没有效果,它始终启用
mySCNKitView.overlaySKScene?.userInteractionEnabled = true / false
我不知道它是否应该是这样的?
但似乎应该如何禁用overlaySKScene
的用户交互...?
答案 0 :(得分:0)
Apple Developer Relations20-Jan-2016 08:20 PM
此问题的行为基于以下内容:
这是SpriteKit中“userInteractionEnabled”的预期行为(与UIKit不同)。您必须将userInteractionEnabled设置为false到每个节点(不仅是SKScene节点),否则任何具有userInteractionEnabled = true的节点都将捕获该事件。请注意,SKNode的userInteractionEnabled默认为NO(期望SKScene)。
我们现在正在关闭此错误报告。
如果您对该决议有疑问,或者这对您来说仍然是一个关键问题,请使用该信息更新您的错误报告。
答案 1 :(得分:0)
你有没有解决过这个问题?我遇到了类似的问题,然后最终使用以下内容:
let scnView = self.view as! SCNView
let scene = SCNScene()
var spriteScene: OverlayScene!
self.spriteScene = OverlayScene(size: self.view.bounds.size)
scnView.overlaySKScene = self.spriteScene
scnView.overlaySKScene?.userInteractionEnabled = false
使用上面的代码,我的整个叠加场景被忽略,SceneKit场景根据需要接收事件。这是在Xcode 7.3 beta,tvOS部署目标9.1,所以也许Apple最近改变了什么?