我有 3D 模型,想单击此模型上的特定节点来创建一些 Action 。我的模型是一组节点;每个节点都没有 chilled 节点,我想单击其中一个节点以执行某些操作并单击另一个节点以执行不同的操作;如何检测哪个节点点击了我的模型?
最佳答案
您应该阅读一些有关 SceneKit HitTest 方法的信息并关注 hit-test method .
func registerGestureRecognizer() {
let tap = UITapGestureRecognizer(target: self, action: #selector(detectNode))
self.sceneView.addGestureRecognizer(tap)
}
@objc func detectNode(_ sender: UITapGestureRecognizer) {
let sceneView = sender.view as! ARSCNView
let location = sender.location(in: sceneView)
let results = sceneView.hitTest(location, options: [SCNHitTestOption.searchMode : 1])
for result in results.filter( { $0.node.name != nil }) {
if result.node.name == "Your node name" {
// excuse some actions
}
}
}
希望对您有所帮助!
关于ios - 检测哪个节点点击了 3D 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54341647/