gpt4 book ai didi

ios - 有没有办法识别 ARKit 中的触摸节点?

转载 作者:搜寻专家 更新时间:2023-11-01 06:52:16 24 4
gpt4 key购买 nike

我正在使用 ARKit 来投影 3D 文件。在那个 3D 中有多个子节点。当用户触摸任何节点时,我们必须显示有关触摸节点的一些信息。

有什么方法可以确定用户触摸了哪个节点?

最佳答案

您可以执行点击测试 以确定用户触摸了哪个节点。假设您的场景中有两个节点,例如:

override func viewDidLoad() {
...

let scene = SCNScene()

let node1 = SCNNode()
node1.name = "node1"
let node2 = SCNNode()
node2.name = "node2"

scene.rootNode.addChildNode(node1)
scene.rootNode.addChildNode(node2)

sceneView.scene = scene

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapped))
sceneView.addGestureRecognizer(tapGestureRecognizer)
}

在您的点击处理程序中,您可以检测触摸的节点并执行您需要的任何逻辑,例如显示有关该节点的一些信息。

@objc func tapped(recognizer: UIGestureRecognizer) {
guard let sceneView = recognizer.view as? SCNView else { return }
let touchLocation = recognizer.location(in: sceneView)

let results = sceneView.hitTest(touchLocation, options: [:])

if results.count == 1 {
let node = results[0].node
print(node.name) // prints "node1" or "node2" if user touched either of them
if node.name == "node1" {
// display node1 information
} else if node.name == "node2" {
// display node2 information
}
}
}

关于ios - 有没有办法识别 ARKit 中的触摸节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56393370/

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