SceneKit物理问题与动态实体

时间:2017-01-25 15:25:57

标签: swift scenekit scnnode

这是一个有趣的问题,我已经坚持了一段时间,无法弄清楚。我在SceneKit中玩游戏(使用swift)。无论何时何地我试图将具有动态物理主体的对象放入节点层次结构中(即将它们作为子节点添加到另一个节点),物理主体与模型分离(有时模型只是飞走等)。如果我将主体设置为静态,它总是很有效。有没有人听说过这样的事情?

编辑: 对不起,如果之前有点不清楚。只是为了补充一些关于这个问题的信息:

我在场景中多次创建父节点。第一次创建它时,一切都很完美,甚至是具有动态物体的物体。现在,如果我在z轴的下方创建另一个父节点实例,动态物理实体看起来恰好在正确的位置,但3d模型没有连接到物理主体。有时模型在视线范围内,但在物理机构附近或根本没有被看见。如果它是可见的,一旦我的主游戏对象与动态身体碰撞,物理身体就会按预期响应,但模型会立即消失。所以只是为了澄清一下,动态物理体的行为是正常的,但动态体所属的导入模型却没有。仅当我的对象位于节点层次结构中时才会出现这种情况。

至于将它们设置为不受重力影响,我实际上确实希望它们受到它的影响!

谢谢! 萨姆

1 个答案:

答案 0 :(得分:0)

SCNNode.presentation的位置与节点本身之间存在差异。物理引擎将移动演示文稿。如果您在SCNNode上设置属性,如旋转,位置等,则应重置节点和演示文稿以匹配,或者您可以调用reset *(现在不在文档前面以获取正确的名称)以在需要时手动重置它。 / p>

正如马戈所说,可能有重力移动你的动态身体。您可以从SceneView的物理引擎属性中关闭重力,或者您可以将物理主体的属性设置为不受重力影响,并查看是否修复了它。

鉴于你的描述,我不确定你所观察到的是什么,因为只有连接到SCNNode的几何体看不到物理体。也许你所观察到的更多细节可以得出“物理团体与模型分离”的结论?