在ARKit项目中,当用户点击屏幕时,我想获取用户想要与之交互的元素的rootNode
。
func screenTapped(_ sender: UITapGestureRecognizer) {
let hitTestResult = sceneView.hitTest(touchLocation)
if let result = hitTestResult.first {
guard let rootNode = getRoot(for: result.node) else {return}
...
}
func getRoot(for node: SCNNode) -> SCNNode? {
if let node = node.parent {
return getRoot(for: node)
}
else {
return node
}
}
但是让我感到奇怪的是,Swift在默认情况下没有提供任何东西,而为子节点提供了递归方法。
SCNNode
的扩展名吗?答案 0 :(得分:0)
它不等于sceneView.scene.rootNode
吗?