gpt4 book ai didi

ios - HitTest (_ :options:) for SCNNodes without physicsBody swift

转载 作者:行者123 更新时间:2023-11-30 12:19:22 25 4
gpt4 key购买 nike

我正在尝试确定如何进行“hitTest”,而不实际为我的 SCNNode 创建物理主体。

我可以使用什么替代方法来进行 HitTest ? (包括没有物理体的节点)。我正在尝试选择屏幕触摸所在的第一个节点

问题,“ HitTest ”要求节点具有物理主体如果我有一个物理主体,这将起作用,但在添加物理主体之前我需要对我的 SCNNode 进行一些操作。

我的“environmentContainer”中确实有第一个SCNNode;但是,“results.first”返回了第一个带有物理主体的节点,我需要第一个节点(无论它是否有物理主体)

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

最佳答案

默认情况下,SceneKit HitTest 正在针对几何体进行测试。您可以将 SCNHitTestOption.boundingBoxOnly 设置为 true 以检查节点的边界框。 HitTest 应该与 physicalsBody 无关,只与几何形状和边界框有关。

关于ios - HitTest (_ :options:) for SCNNodes without physicsBody swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44990393/

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