如何通过点击获得一个SCNNode?

How to get a SCNNode by tapping on it?

我有一个 ARSCNView,我在其中放置了一些 SCNNode,为它们中的每一个分配了 ID,然后将它们存储在一个数组中。

现在,当我点击它时,我想要获得的是 SCNNode。现在我可以点击并更改节点的颜色。但是我无法获得我设置的 ID 的节点(它是 0,因为我在存储的属性中设置它),它的位置也是 (0,0,0)。我认为它正在返回该节点的一个新实例。

我把这段代码作为参考:

如有任何帮助,我们将不胜感激。

找到解决方案。我以错误的方式从场景加载节点。

之前:

let scene = SCNScene(named: "marker.scn")!
let node = scene.rootNode

之后:

let scene = SCNScene(named: "marker.scn")!
let node = scene.rootNode.childNode(withName: "marker", recursively: true)