Лучший способ заменить SCNNode в AR - PullRequest
0 голосов
/ 23 октября 2019

Я занимаюсь разработкой приложения о анатомии человека. Я устанавливаю AR и определяю место, и все работает отлично. Мне нужно изменить или заменить текущую модель на что-то другое. Например, первая модель - это человеческое тело, а затем мне нужно поменять его с помощью кнопки на скелет. Я пробовал разные способы, например, если я изменяю SCNNode, только он не заменяется точной позицией. Итак, каков наилучший способ заменить сцену или узел в AR? вот мой код:

   override func viewDidLoad() {
        super.viewDidLoad()

  sceneView = ARSCNView(frame: view.frame)
        sceneView.delegate = self
        ARView.addSubview(sceneView)

        // Create a new scene
        bodyScene = SCNScene(named: "art.scnassets/test.dae")!
        bodyNode = bodyScene.rootNode.childNode(withName: "Cube", recursively: true)

        let scale:Float  = 0.1
        bodyNode.scale = SCNVector3(x: scale, y: scale, z: scale)
        bodyNode.isHidden = true
        sceneView.scene = bodyScene

        sceneView.autoenablesDefaultLighting = true
        sceneView.automaticallyUpdatesLighting = true

        ARView.addSubview(ARGuideView)


        //Foucus
        setupFocusSquare()

}

1 Ответ

0 голосов
/ 23 октября 2019

Вы должны использовать Удалить bodyNode, если вы хотите добавить любой другой узел в сцене. Добавив эту строку, вы можете удалить bodyNode:

bodyNode.removeFromParentNode()                                                                                                 

И если вы хотите просто заменить bodyNodeзатем просто объявите ваш bodyNode как глобальный и измените его инициализацию, когда вы хотите изменить / заменить его.

...