Сейчас я изучаю ARKit в iOS. Я сделал несколько функций, которые: 1. помещают трехмерные объекты, когда я нажимаю на экран, 2. масштабируют (уменьшают), 3. вращают, 4. передвигают
, но я думаю, что «переместить»функция не работает идеально, я сделал функцию с помощью UILongPressGestureRecognizer.когда я долго касаюсь какого-то трехмерного объекта, иногда размер меняется на маленький, даже если я не перемещаюсь в другую точку.Я просто долго нажимал
кто-нибудь, помогите мне.
пожалуйста, проверьте мой код и видео.Я узнал код в Как вращать или масштабировать файл scn 3D-модели в AR kit
@objc func moved(recognizer: UILongPressGestureRecognizer) {
//get tap location
let sceneView = recognizer.view as! ARSCNView
let touchLocation = recognizer.location(in: sceneView)
//1. Get The Current Touch Point
guard let hitTest = sceneView.hitTest(touchLocation, types: .existingPlane).first else { return }
//3. Convert To World Coordinates
let worldTransform = hitTest.worldTransform
//4. Set The New Position
let newPosition = SCNVector3(worldTransform.columns.3.x, worldTransform.columns.3.y, worldTransform.columns.3.z)
[enter image description here][1]
let node = getSelectedNode(touchLocation)
//5. Apply To The Node
node.simdPosition = float3(newPosition.x, newPosition.y, newPosition.z)
}