ARkit - SceneKit: динамическое размещение 3D-моделей на обнаруженной плоскости - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю над проектом ARKit и пытаюсь разместить некоторые объекты на обнаруженной плоскости.Но он не работает должным образом, когда я перемещаю устройство, чтобы разместить другой объект, первый объект не стоит на своей позиции.Я хочу, чтобы каждый визуализированный объект застрял в первой позиции, пока пользователь не начнет взаимодействовать с ним.

Я уже вижу это:

ARKIT: размещение объекта на плоскости не работает должным образом

Но решения пока нет.

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {

        guard let planeAnchor = anchor as? ARPlaneAnchor else { return }

        self.planeAnchor = planeAnchor
        self.floorNode = node

        DispatchQueue.main.async {
            self.messageLabel.text = "Surface Detectée - Taper + pour choisir des objets"
            self.addModelButton.isEnabled = true
            self.addModelButton.alpha = 1
        }

    }


 func addFurniture(selectedNode:SCNNode) {

        selectedNode.simdPosition = float3(planeAnchor.center.x, planeAnchor.center.y, planeAnchor.center.z)
        floorNode.addChildNode(selectedNode)
        messageLabel.text = "Model chargé - Vous pouvez le positionner, le faire tourner ou ajouter d'autres. "
    }

Как только плоскость обнаружена, пользователь выбирает модель из коллекции, затем модель помещается в обнаруженную плоскость после вызова addFurniture (selectedNode: SCNNode).

Что я делаюнеправильно или что я не делаю?пожалуйста, кто-нибудь может мне помочь?

...