Swift 具有动力体的SceneKit物理问题

Swift 具有动力体的SceneKit物理问题,swift,scenekit,scnnode,Swift,Scenekit,Scnnode,这是一个有趣的问题,我已经坚持了一段时间,无法理解。我在SceneKit玩(使用swift)。无论何时何地,我尝试将具有动态物理体的对象放入节点层次结构(即将其作为子节点添加到另一个节点),物理体都会与模型分离(有时模型会飞离等)。如果我把物体设为静止状态,它总是工作得很好。有人听说过这样的事吗 编辑: 对不起,如果之前有点不清楚的话。只是想补充一些关于这个问题的更多信息: 我在场景中多次创建父节点。第一次创建时,一切都是完美的,即使是具有动态实体的对象。现在,如果我再沿z轴向下创建父节点的另一

这是一个有趣的问题,我已经坚持了一段时间,无法理解。我在SceneKit玩(使用swift)。无论何时何地,我尝试将具有动态物理体的对象放入节点层次结构(即将其作为子节点添加到另一个节点),物理体都会与模型分离(有时模型会飞离等)。如果我把物体设为静止状态,它总是工作得很好。有人听说过这样的事吗

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

我在场景中多次创建父节点。第一次创建时,一切都是完美的,即使是具有动态实体的对象。现在,如果我再沿z轴向下创建父节点的另一个实例,例如,动态物理实体似乎正好位于正确的位置,但三维模型未连接到物理实体。有时模型在视线中,但离物理体很远,或者根本看不见。如果它是可见的,只要我的主要游戏对象与动态体碰撞,物理体就会按照预期做出响应,但模型会立即消失。所以,为了澄清,动态物理体的行为正常,但我导入的动态体所属的模型却不正常。只有当我的对象位于节点层次结构中时,才会出现这种情况

至于设置它们不受重力的影响,我真的希望它们受到重力的影响

谢谢!
Sam

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

正如Mago所说,可能是重力在移动你充满活力的身体。可以从SceneView的“物理引擎”属性中禁用“重力”,也可以将物理实体的属性设置为不受重力影响,然后查看是否可以修复重力


根据你的描述,我不确定你到底观察到了什么,因为物理体不可见,只是连接到SCNNode的几何体。也许你观察到的更多细节会导致“物理实体与模型分离”的结论?

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

正如Mago所说,可能是重力在移动你充满活力的身体。可以从SceneView的“物理引擎”属性中禁用“重力”,也可以将物理实体的属性设置为不受重力影响,然后查看是否可以修复重力


根据你的描述,我不确定你到底观察到了什么,因为物理体不可见,只是连接到SCNNode的几何体。也许你观察到的更多细节会导致“物理实体与模型分离”的结论?

我认为它的场景重力就是它移动你的对象,它们是否移动到底部?你是如何创建这些节点的?@困惑我创建了一个场景(例如.dae或.scn)并从内部获取根节点。和我看到的其他人做这件事的方式完全一样。我不是问你如何得到SCNNode的引用,我也不知道其他人是如何做的,因为没有人经常使用SceneKit。我在问你如何创建你遇到麻烦的SCNNodes?我想它的场景重力就是它移动你的对象,它们是否移动到底部?你是如何创建这些节点的?@我创建了一个场景(例如.dae或.scn),然后从里面取我的根节点。和我看到的其他人做这件事的方式完全一样。我不是问你如何得到SCNNode的引用,我也不知道其他人是如何做的,因为没有人经常使用SceneKit。我在问你如何创建你遇到麻烦的SCNNodes?