2017-10-10 11 views
2

©私が置いたSCNNodeオブジェクトをサーフェスに移動しようとしています。移動はしますが、スケールが変わり、最初に移動を開始すると、スケールが小さくなります。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の変化にオブジェクトを移動しているからです。