Ich habe einen einfachen SCNNode in ARKit und ich versuche, es zu ziehen, wo auch immer ich meinen Finger auf dem Telefon bewegte. Hier ist mein Code.Ziehen von SCNNode in ARKit Verwenden von SceneKit
@objc func pan(recognizer :UIGestureRecognizer) {
guard let currentFrame = self.sceneView.session.currentFrame else {
return
}
var translation = matrix_identity_float4x4
translation.columns.3.z = -1.5
let sceneView = recognizer.view as! ARSCNView
let touchLocation = recognizer.location(in: sceneView)
let hitTestResult = sceneView.hitTest(touchLocation, options: [:])
if !hitTestResult.isEmpty {
print("hit result")
guard let hitResult = hitTestResult.first else {
return
}
let node = hitResult.node
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
}
}
Das Problem ist, dass der Widerstand sehr langsam und nicht glatt ist.
zu dieser Frage Werfen Sie einen Blick: https: // Stackoverflow .com/questions/6672677/how-to-use-uipangesture-recognizer-zu-bewegen-objekt-iphone-ipad. Sie sollten mit Schwenkgesten korrekt arbeiten. –
Hat dies für Sie funktioniert? – mergesort
Fragen Sie sich, ob Sie John Doe etwas herausgefunden haben. –