在overlaySKScene上设置userInteractionEnabled = true / false无效

时间:2016-01-18 15:22:47

标签: overlay scenekit setuserinteractionenabled

我有一个类似的SceneKit视图:

mySCNKitView.scene = a SCNScene
mySCNKitView.overlaySKScene = a SKScene

现在,如果我在userInteractionEnabled上设置overlaySKScene属性,则无效,即它始终处于启用状态,因此我无法禁用overlaySKScene的用户互动! ? 所有添加到overlaySKScene的子SKNode仍然会收到用户互动...

即。这没有效果,它始终启用

mySCNKitView.overlaySKScene?.userInteractionEnabled = true / false

我不知道它是否应该是这样的? 但似乎应该如何禁用overlaySKScene的用户交互...?

2 个答案:

答案 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最近改变了什么?