我目前正在使用 SceneKit 进行 ARKit 游戏,我无法控制和移动节点。游戏的布局非常简单,我有一个节点代表一个具有动态物理体的坦克。我可以成功地将节点添加到地图中,但是我想使用操纵杆控制节点。
我正在尝试修改坦克的速度属性,以便当操纵杆向上推时,坦克朝向它面向的方向向前移动。为此,我首先尝试简单地设置 velocity 属性:
t.physicsBody?.velocity = SCNVector3Make(0, 0, -0.15)
这导致油箱以所需的速度移动,但是它没有朝正确的方向移动。据我所知,-z 方向是朝前的方向。 Apple 的本地与世界空间的文档非常模糊,在网上浏览后我发现这个堆栈溢出文章SceneKit 物理在局部空间中添加速度。我试过转换到父节点仍然没有达到预期的效果。我也尝试使用演示节点的物理主体,它具有更新的值,但两种方式都会导致抖动,non-uniform 和不可预测的移动。
我会使用力量,但是我希望 SCNode 能够在没有加速的情况下进行非常直接的卡通运动。任何帮助了解正在发生的事情以及 SceneKit 处理运动的方式都将受到赞赏。
1 回答
我猜你使用 iOS11,所以我认为你可以使用 SCNNode.convertVector 来实现你的目的。