1
私はviewDidLoad
パンジェスチャ認識機能を使用してARSCNViewでノードを移動するにはどうすればよいですか?
let scene = SCNScene(named: "funModel")!
myNode = scene.rootNode.childNode(withName: "blah")!
myNode.position = SCNVector3Make(0, 0, -1)
sceneView.scene = scene
let pan = UIPanGestureRecognizer(target: self, action: #selector(panGesture(recognizer:)))
view.addGestureRecognizer(pan)
で、次のコードと、その後another SO answerからpanGesture
に次のコードを持っているが、それは働いていません。ノードはちょうど0、0、0のようになります。私はちょうど画面の周りにノードをドラッグできるようにしたい。
let projectedOrigin = sceneView.projectPoint(SCNVector3Zero)
let vp = recognizer.location(in: sceneView)
let vpWithZ = SCNVector3(x: Float(vp.x), y: Float(vp.y), z: Float(projectedOrigin.z))
let worldPoint = sceneView.unprojectPoint(vpWithZ)
myNode.position = worldPoint
上記の他の答えは、カメラに垂直な仮想平面に沿ってノードを移動させることに特有であることに留意されたい。それがあなたの意図でないなら、あなたは望んでいない結果を得るでしょう。 – rickster