首页 文章

SceneKit 物理问题与动态实体

提问于
浏览
1

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

编辑:对不起,如果以前稍微不清楚。只是添加一些有关该问题的更多信息:

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

至于让它们不受重力影响,我实际上希望它们受到它的影响!

谢谢!山姆

1 回答

  • 0

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

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

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

相关问题