Swift 施力后如何获取当前SCNnode位置

Swift 施力后如何获取当前SCNnode位置,swift,xcode,sprite-kit,scenekit,arkit,Swift,Xcode,Sprite Kit,Scenekit,Arkit,我使用以下方法对场景中的SCNnode应用恒定力 func applyForceToDrone(powerApply: Double, isHovering: Bool, gravity : SCNVector3) { let nodo = arrayDrone[0] // load the first drone in the scene guard let lhBlade = nodo.childNode(withName: "Rotor_

我使用以下方法对场景中的SCNnode应用恒定力

 func applyForceToDrone(powerApply: Double, isHovering: Bool, gravity : SCNVector3) {
   
        let nodo = arrayDrone[0] // load the first drone in the scene
        guard let lhBlade = nodo.childNode(withName: "Rotor_L_2", recursively: true) else {fatalError()}
        guard let rhBlade = nodo.childNode(withName: "Rotor_R_2", recursively: true) else {fatalError()}
        if isHovering == true {
            print("x gravity = \(gravity.x), \(gravity.y) \(gravity.z)")
            let force = SCNVector3(gravity.x, abs(gravity.y), gravity.z)

            nodo.physicsBody?.applyForce(force, asImpulse: false)
        } else {
            print("apply power  \(powerApply)")
            let positionBladeLH = lhBlade.position
            let positionBladeRH = rhBlade.position
            let force = SCNVector3(0, powerApply, 0)
            nodo.physicsBody?.applyForce(force, at: positionBladeLH, asImpulse: false)
            nodo.physicsBody?.applyForce(force, at: positionBladeRH, asImpulse: false)
            
            let alt = nodo.position.y // position is wrong ... is always the starting position
            print(alt)
        }
    }
我在渲染方法中使用此函数来飞行我的无人机

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {}
我希望在每次应用力时读取节点的当前位置

如何在渲染应用力时获得更新位置

我试过:

let alt = nodo.position.y
但它总是给我节点的起始位置,而不是施力后的位置


谢谢

像这样使用节点的表示对象:

而不是

nodo.position.y
使用

nodo.presentation.position.y // local space
nodo.presentation.worldPosition.y // world space