gpt4 book ai didi

swift - 获取节点的rootNode

转载 作者:行者123 更新时间:2023-11-30 11:09:07 24 4
gpt4 key购买 nike

在 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 的扩展吗?

最佳答案

这不是等价于sceneView.scene.rootNode吗?

关于swift - 获取节点的rootNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52370664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com