我正在开发一款关于人体解剖学的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()
}
如果要在场景中添加任何其他节点,则必须使用Remove the bodyNode通过添加此行,您可以删除bodyNode:
bodyNode.removeFromParentNode()
如果你只想重新激活bodyNode,那么只需将你的bodyNode声明为全局,并在你想更改/替换时重新初始化。