替换AR中SCNNode的最佳方法

问题描述 投票:0回答:1

我正在开发有关人体解剖学的AR应用程序。我设置了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()

}
ios swift arkit scnnode scnscene
1个回答
0
投票

如果要在场景中添加任何其他节点,则必须使用Remove bodyNode通过添加此行,您可以删除bodyNode:

bodyNode.removeFromParentNode()                                                                                                 

并且如果您只想复制bodyNode,则只需声明您的bodyNode为全局对象,并在想要更改/替换时更改重新初始化。

© www.soinside.com 2019 - 2024. All rights reserved.