【发布时间】:2021-05-20 06:44:45
【问题描述】:
我正在尝试使用 ARKit 和 SceneKit 制作无人机模型。
现在我可以成功地将无人机放置在一个表面上,模拟碰撞末端检测底座和无人机之间的接触。
现在我想尝试驾驶这架无人机,施加一些恒定的力量! (我不想简单地移动 Y 轴来向上移动无人机)但我想模拟一个力将它拉起来,就像它发生在现实生活中一样。
我开始写一些代码,当我按下向上按钮时调用这个方法..
// hit test and find object with specific name
func applyForceToDrone() {
print("tapped apply force drone at position ")
let nodo = arrayDrone[0] // return the scnNode of the Drone in the scene
let force = SCNVector3(0, 15, 0)
print("appply force")
nodo.physicsBody?.applyForce(force, asImpulse: false)
}
这段代码的结果是每次我按下向上按钮时无人机都会上下跳跃。 但是这个力需要在时间上保持恒定......
我怎样才能不断地施力以使无人机保持在空中?任何提示我如何解决这个问题...
我找不到任何对物体施加恒定力的例子。
感谢您的帮助。
【问题讨论】:
-
老实说,我无法告诉你为什么它只会上下跳跃。我还在我的一个应用程序中的某些对象上使用了这个 applyForce 命令,但我需要相反,设置 asImpulte = true。此时您可能会遇到一些问题。除 SCNPhysics 引擎外,不得移动包含动态物理体的对象。因此,如果您想让您的无人机飞行并控制方向,您将需要另一种方法。在 Apple 的 FOX 示例游戏中,您可以找到一些他们如何控制角色的方法。想象一下你的无人机也是如此,但在 ARKit 中。它使用.kinematic body。
标签: swift xcode sprite-kit scenekit arkit