我目前有一个场景,其中包含场景根部的中心节点,具有类似地球的几何体和代表飞行器的节点。
然而,我无法找到控制车辆运动的正确方法。我需要能够在静止高度和速度的轨道上左右转动。
我尝试了许多动画和物理体力的组合都会导致不良结果。
我最接近的是:
然后设置如下的动作来控制前进
[_vehicleNode runAction:[SCNAction repeatActionForever:[SCNAction rotateByX:-1 y:0 z:0 duration:10.0]]];
然后最后用
施加左右转动力[_vehicleNode.physicsBody applyTorque:SCNVector4Make(0, 1, 0, 1) impulse:YES];
但是我似乎无法将枢轴和/或位置设置为正确的值以获得所需的结果。
编辑:看起来上面的方法将是我正在寻找的解决方案,但是出于某种原因,当我向车辆节点添加几何图形时,它在场景图中的位置会发生显着变化。当我添加硬编码按钮以将其位置更改为它所属的位置时,对于该单帧而言似乎是正确的,然后直接返回到不知道的中间。
编辑2:用原始球体替换所有几何体以进行测试后,节点现在按预期旋转,但现在不受物理力的影响,似乎忽略了它作为dynamicBody的声明。
答案 0 :(得分:0)
如果我理解你想要正确实现的目标,你可以试试这个:
SCNAction