【问题标题】:physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) method called before actual contactphysicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) 方法在实际接触之前调用
【发布时间】:2020-03-19 19:06:39
【问题描述】:
目前,我的 physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact) 方法在两个节点实际接触之前被调用。我使用调试选项来显示物理形状,一切看起来都井井有条,但接触检测并不精确。当我介绍复杂的 3D 模型时,这种情况就开始发生了,它可以很好地处理球体和盒子等简单的形状。另外,我尝试将物理形状设置为节点的边界框,以便形状简单。
【问题讨论】:
标签:
ios
swift
scenekit
arkit
【解决方案1】:
所以我发现了它为什么表现得很奇怪。问题出在坐标系的位置上。以前对于我的 3D 模型,坐标系的起点位于模型的起点,但它应该位于模型的中间,因为物理体将采用正确的尺寸和形状,但其中间位置始终位于模型的中心坐标系,因此它的行为就像在模型前面一样。