我正在开发一个应用程序,它首先检测到有一个垂直平面,然后,如果用户触摸该平面,我将 SCNNode 添加到 rootNode。之后,我想检测用户是否触摸节点来做更多的事情,但我无法检测到该点击,它只是检测到平面点击。现在我回到了这个方法:
@objc func tapped(sender: UITapGestureRecognizer) {
let sceneView = sender.view as! ARSCNView
let tapLocation = sender.location(in: sceneView)
let hitTest = sceneView.hitTest(tapLocation, types: .existingPlaneUsingExtent)
if !hitTest.isEmpty {
addItem(hitTestResult: hitTest.first!)
hideTip()
}
}
哪个是在平面上点击时添加节点的那个,但现在我想检测节点何时被点击,我使用了以下代码:
let sceneView = sender.view as! ARSCNView
let tapLocation = sender.location(in: sceneView)
let hitTouchTest = sceneView.hitTest(tapLocation)
if !hitTouchTest.isEmpty {
let results = hitTouchTest.first!
let node = results.node
}
它输入if,但节点的名称始终为nil,当我创建节点时将其添加到平面我给它一个名称......我怎样才能检测到节点被点击?