Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用sceneKit对SCNnode施加恒定力_Swift_Xcode_Sprite Kit_Scenekit_Arkit - Fatal编程技术网

Swift 使用sceneKit对SCNnode施加恒定力

Swift 使用sceneKit对SCNnode施加恒定力,swift,xcode,sprite-kit,scenekit,arkit,Swift,Xcode,Sprite Kit,Scenekit,Arkit,使用ARKit和SceneKit,我试图制作一个无人机模型 现在,我可以成功地将无人机放置在表面上,模拟基地和无人机之间的碰撞结束检测接触 现在我想尝试驾驶这架无人机,施加一些恒定的力! (我不想简单地移动Y轴来向上移动无人机),但我想模拟一个力将其向上拉,就像现实生活中发生的那样 我开始编写一些代码,并在按下up按钮后调用此方法 // hit test and find object with specific name func applyForceToDrone() {

使用ARKit和SceneKit,我试图制作一个无人机模型

现在,我可以成功地将无人机放置在表面上,模拟基地和无人机之间的碰撞结束检测接触

现在我想尝试驾驶这架无人机,施加一些恒定的力! (我不想简单地移动Y轴来向上移动无人机),但我想模拟一个力将其向上拉,就像现实生活中发生的那样

我开始编写一些代码,并在按下up按钮后调用此方法

// 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)
            
        
    }
这段代码的结果是,每当我按下up按钮时,无人机就会上下跳跃。 但是这个力需要在时间上保持恒定

我怎样才能持续施加一个力使无人机保持在空中?任何我如何处理这个问题的提示

我找不到一个恒力作用于物体的例子


谢谢您的帮助。

您必须在其中一个循环函数中施加力。为此,请定义变量var applyForce=false。然后在例如按钮上点击开始,设置applyForce=true,在触摸结束时设置applyForce=false。然后内部循环功能:如果施加力,则施加力。你必须调整力量的大小。此外,您还可以添加更多参数。

I honeslty无法告诉您为什么它只是上下跳跃。我也在我的一个应用程序中的某些对象上使用了这个applyForce命令,但我需要相反的设置,设置为asImpulte=true。此时,您可能会遇到一些问题。包含动态物理体的物体不得由SCNPhysics引擎以外的任何物体移动。因此,如果你想让你的无人机飞行并控制方向,你需要另一种方法。在苹果的福克斯示例游戏中,你可以找到一些他们如何控制角色的方法。想象一下你的无人机也是这样,但是在ARKit中。它使用。运动学体。