Почему размер 3d объекта изменяется, когда я пытаюсь переместиться куда-нибудь, используя долгое нажатие - PullRequest
0 голосов
/ 21 сентября 2019

Сейчас я изучаю 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)
    }
...