我查看了无数参考资料,试图理解为什么我的场景没有像我预期的那样运行,例如this。
这是我非常简单的 SKScene(2 个子节点):
- 场景有一个 SpriteNode(作为背景图像覆盖整个场景)。这有一个 zPosition = 0。
- 场景有一个第二个节点 (SKNode),它本身还有另一个子节点(最多 2 个级别)。这有一个 zPosiiton - 2。
- 所有节点都有 .userInteractionEnabled = false
问题:
当我点击任何地方时,我看到的是第一个孩子(SpriteNode)被触摸了。第二个孩子(SKNode)永远不会被触摸检测到。
请注意,节点的 z 顺序正在按照我的预期呈现。触摸检测似乎不起作用。
我的 touchesBegan 方法的片段:
for touch in touches {
let touchLocation = touch.locationInNode(self)
let sceneTouchPoint = self.convertPointToView(touchLocation)
let touchedNode = self.nodeAtPoint(sceneTouchPoint)
if (touchedNode.name != nil) {
print("Touched = \(touchedNode.name! as String)")
}
}