2017-10-10 84 views
2

©我試圖移動我放在表面上的SCNNode對象。 İt移動但規模變化,它變得更小,當我第一次開始移動。ARKit拖動對象的變化規模

這就是我所做的;

@IBAction func dragBanana(_ sender: UIPanGestureRecognizer) { 
    guard let _ = self.sceneView.session.currentFrame else {return} 

    if(sender.state == .began) { 
     let location = sender.location(in: self.sceneView) 
     let hitTestResult = sceneView.hitTest(location, options: nil) 
     if !hitTestResult.isEmpty { 
      guard let hitResult = hitTestResult.first else {return} 
      movedObject = hitResult.node 
     } 
    } 
    if (sender.state == .changed) { 
     if(movedObject != nil) { 
      let location = sender.location(in: self.sceneView) 
      let hitTestResult = sceneView.hitTest(location, types: .existingPlaneUsingExtent) 
      guard let hitResult = hitTestResult.first else {return} 
      let matrix = SCNMatrix4(hitResult.worldTransform) 
      let vector = SCNVector3Make(matrix.m41, matrix.m42, matrix.m43) 
      movedObject?.position = vector 
     } 
    } 
    if (sender.state == .ended) { 
     movedObject = nil 
    } 
} 

回答

-2

這是因爲你正在移動3軸上的物體,Z變化,這就是爲什麼它感覺像是縮放,但它只是靠近你。