【发布时间】:2014-09-17 13:09:17
【问题描述】:
我目前有一个场景,其中包含一个位于场景根部的中心节点,该节点具有类似地球的几何形状和一个代表飞行器的节点。
但是我找不到控制车辆移动的正确方法。我需要能够在以静态高度和速度进行轨道运行时左右转。
我尝试了多种动画和物理体力的组合,但都导致了不良结果。
我最接近的是:
- 将车辆的枢轴属性设置为场景中心
-
然后设置一个像下面这样的动作来控制前进
[_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 的声明。
【问题讨论】:
标签: ios 3d core-animation scenekit game-physics