2017-10-10 5 views
2

Je tente de déplacer l'objet SCNNode que j'ai placé sur une surface. Il se déplace mais l'échelle change et elle devient plus petite, quand je commence à bouger.ARKit déplacement de l'objet change d'échelle

C'est ce que j'ai fait;

@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 
    } 
} 

Répondre

-2

C'est parce que vous vous déplacez l'objet sur l'axe 3 et les changements Z qui est la raison pour laquelle il se sent comme il échelles, mais il ne se rapproche est de vous.