我正在尝试确定如何在不实际为我的SCNNode创建physicsBody的情况下执行'hitTest'。
我可以使用什么替代方法进行命中测试? (包括没有物理主体的节点)。我正在尝试选择屏幕触摸的第一个节点
问题,'命中测试'要求节点具有physicsBody 如果我有一个physicsBody,这将有效,但我需要在添加physicsBody之前使用我的SCNNode。
我的'environmentContainer'中有第一个SCNNode;但是,'results.first'返回第一个带有physicsBody的节点,我需要第一个节点(无论它是否有物理实体)
case .began:
let results = sceneView.hitTest(firstTouch!, options: [SCNHitTestOption.firstFoundOnly: true])
if results.first != nil {
if environmentContainer.childNodes.contains((results.first?.node)!)
{
firstDragTapOnSelectedNode = true
print("firstDragTapOnSelectedNode = true")
}
else {
// always returns false because 'results.first' is picking up the wrong node which is in a different SCNNode container
print("firstDragTapOnSelectedNode = false")
}
}
case .ended:
firstDragTapOnSelectedNode = false
default: break
}
注意:firstDragTapOnSelectedNode初始化为false
答案 0 :(得分:0)
SceneKit命中测试默认测试几何。您可以将var day = document.getElementById("inputBox").value;
设置为true以检查节点的边界框。
命中测试应该只与几何和边界框SCNHitTestOption.boundingBoxOnly
无关。