Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios AR中SCNNode的最佳替代方法_Ios_Swift_Arkit_Scnnode_Scnscene - Fatal编程技术网

Ios AR中SCNNode的最佳替代方法

Ios AR中SCNNode的最佳替代方法,ios,swift,arkit,scnnode,scnscene,Ios,Swift,Arkit,Scnnode,Scnscene,我正在开发一个关于人体解剖学的AR应用程序。我设置了AR和位置检测,一切正常。我需要用其他东西更改或替换当前模型。例如,第一个模型是人体,然后我需要用按钮将其更改为骨架。我尝试了不同的方法,例如,如果我更改SCNNode,但它不会替换为确切的位置。那么,在AR中替换场景或节点的最佳方法是什么?这是我的密码: override func viewDidLoad() { super.viewDidLoad() sceneView = ARSCNView(frame: vi

我正在开发一个关于人体解剖学的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()

}

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

bodyNode.removeFromParentNode()                                                                                                 
如果您只想重新扫描bodyNode,那么只需将您的bodyNode声明为全局,并在您想更改/替换它时更改重新初始化即可