1

我有一个像这样的 SceneKit 视图:

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

现在,如果我在userInteractionEnabled上设置属性overlaySKScene,它没有效果,即它始终处于启用状态,所以我不能禁用用户交互overlaySKScene!?所有添加到的子 SKNodeoverlaySKScene仍将接收用户交互...</p>

即这没有效果,它总是启用

mySCNKitView.overlaySKScene?.userInteractionEnabled = true / false

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

4

2 回答 2

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 最近改变的东西?

于 2016-03-09T16:15:00.547 回答
0

Apple 开发者关系2016 年 1 月 20 日 08:20 PM

此问题根据以下情况按预期运行:

这是 SpriteKit(与 UIKit 不同)中“userInteractionEnabled”的预期行为。您必须将每个节点(不仅是 SKScene 节点)的 userInteractionEnabled 设置为 false,否则任何具有 userInteractionEnabled=true 的节点都会捕获该事件。请注意,SKNode 的 userInteractionEnabled 默认为 NO(除了 SKScene)。

我们现在关闭此错误报告。

如果您对解决方案有疑问,或者这对您来说仍然是一个关键问题,那么请使用该信息更新您的错误报告。

于 2016-01-20T21:37:28.000 回答