physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) 在实际接触之前调用的方法

physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) method called before actual contact

目前,我的 physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) 方法在两个节点实际接触之前被调用。我使用调试选项来显示物理形状,一切看起来都井井有条,但接触检测并不精确。当我引入复杂的 3D 模型时,这种情况就开始了,它可以很好地处理球体和盒子等简单的形状。另外,我尝试将物理形状设置为节点的边界框,这样形状会很简单。

所以我发现了为什么它表现得很奇怪。问题出在坐标系的位置上。以前对于我的 3D 模型,坐标系的起点是模型的起点,但它应该在模型的中间,因为物理体会采用正确的尺寸和形状,但会将其中间位置始终定位在模型的中心坐标系,因此它的行为就像在模型前面一样。