Ios 使用isNode(u:insideFrustumOf:)与nodesInsideFrustum(of:)时的不同结果

Ios 使用isNode(u:insideFrustumOf:)与nodesInsideFrustum(of:)时的不同结果,ios,arkit,Ios,Arkit,有一个快速的问题,看看我是否正确使用了isNode(u:insideFrustumOf:) 我正在将一个节点(SCNNode)放入具有标准配置的ARSCNView中。节点中的几何体偏离中心,因此我使用节点的“轴”属性调整其中心点 let c = object.boundingSphere.center object.pivot = SCNMatrix4MakeTranslation(c.x, c.y, c.z) object.position = c 我的问题是在使用挤

有一个快速的问题,看看我是否正确使用了isNode(u:insideFrustumOf:)

我正在将一个节点(SCNNode)放入具有标准配置的ARSCNView中。节点中的几何体偏离中心,因此我使用节点的“轴”属性调整其中心点

let c = object.boundingSphere.center            
object.pivot = SCNMatrix4MakeTranslation(c.x, c.y, c.z)
object.position = c
我的问题是在使用挤压手势更新对象的缩放或旋转后出现的。在这种情况发生之后,我从isNode(u:insidefrustof:)和nodesInsideFrustum(of:)得到了不同的结果

我正在测试的节点在屏幕上清晰可见,但isNode(u:insideFrustumOf:)无法看到它。但是,该节点位于nodesInsideFrustum(of:)的[SCNNode]结果中

我的问题是这是否是一个bug,或者是否有其他合适的方法将几何体居中到一个节点,从而解决这个问题。现在,我将使用nodesInsideFrustum(of:)函数并测试对象是否在数组中


谢谢

诀窍是确保对任何移动的对象使用“presentation”节点,即使是移动的视点

这是渲染器中我的应用程序的一个工作片段:(UpdateAtime)


如果您的对象不是静止的,请使用
movingObject.presentation
而不是
stationaryObjectNode

您能找到问题的解决方案吗?很好,我会尝试一下。谢谢你的回答。
if renderer.isNode(stationaryObjectNode, insideFrustrumOf: renderer.pointOfView!.presentation) == true {
    //do stuff if seen
}