【发布时间】:2018-10-10 12:55:42
【问题描述】:
我有一个 ARSceneView,我使用 detectionImages 来找到一个平面,这样我就可以根据我检测到的图像添加节点。
我的问题是,视图一直在我在“我的图像节点”中添加为子节点的节点上方添加一个不可见的平面节点,当我将 TapGestureRecognizer 添加到场景视图时,我无法检测到节点,因为它检测到平面。有时它可以工作,但是当它添加飞机时它就不起作用了。
当飞机在现场时,我的节点是这些
我希望我的节点是这样的..
▿ 3 个元素 - 0:|没有孩子> - 1:SCNNode:0x1c41f4100 |光= - 2 : SCNNode: 0x1c43e1000 'DetectableChildrenParent' pos(-0.009494 -0.081575 -0.360098) rot(0.997592 -0.060896 0.033189 1.335512) | 2 个孩子>
和我的 2 个孩子只能是可检测的节点..
但总是这样
▿ 4 个元素 - 0 : SCNNode: 0x1c01fcc00 pos(-0.093724 0.119850 -0.060124) rot(-0.981372 0.172364 -0.084866 0.457864) scale(1.000000 1.000000 1.000000) |相机= |没有孩子> - 1:SCNNode:0x1c01fc200 |光= |没有孩子> - 2 : SCNNode: 0x1c01fd100 'DetectableChildrenParent' pos(-0.149971 0.050361 -0.365586) rot(0.996908 0.061535 -0.048872 1.379775) scale(1.000000 1.000000 1.0000) 2个孩子> - 3:SCNNode:0x1c01f9f00 |几何= |没有孩子>
它总是检测到最后一个节点。
我要检测的代码是这样的
@objc func addNodeToScene(withGestureRecognizer recognizer: UIGestureRecognizer) {
let tapLocation = recognizer.location(in: self.sceneView)
let hitTestResults = sceneView.hitTest(tapLocation)
if let node = hitTestResults.first?.node {
print(node.name ?? "")
}
}
如何运行命中测试以仅检查 DetectableChildrenParent 的子项?
【问题讨论】:
标签: ios swift augmented-reality arkit hittest