对于测试,我创建了两个SCNBox对象和一个SCNFLoor。
我现在设置了scene.physicsWorld.gravity = SCNVector3Make(0,-9.8,0);
我在地板上放置了一个立方体,在另一个立方体的顶部放置了一个立方体。
所有三个节点都没有旋转,而physicsBody.friction值设置为1.0。
我在3点测量节点速度,:didBeginContact,didUpdateContact和didEndContact。如果线性或角速度不为零,我将其与每个动态节点的velocityFactor和AngularVelocityFactor属性一起设置为零。
无论这些点如何,物体都会继续移动,(尽管速度很慢),但问题就在那里。
有人能指出我正确的方向,我错过了什么?文档规定摩擦值为1将防止滑动。事实显然并非如此。
我正在寻找一些编码帮助,我可以在每个周期更新其位置之前将节点速度归零,或者防止滑动发生。
答案 0 :(得分:0)
解决方案是确保对象不在SCNSceneRendererDelegate方法中移动: - (void)renderer:(id)aRenderer updateAtTime:(NSTimeInterval)时间 这是物理前模拟,您可以通过这种方式确保静止物体保持静止。它不理想,但没有物理模拟器。