У меня есть код записи для отслеживания автомобильного колеса, и когда колесо обнаружило объект SCNScene, ".scn" помещаются автоматически
Теперь я попытался добавить еще несколько опций, чтобы заменить автоматически помещенное колесо новым колесом ".scn".объект
но я всегда получаю сообщение об ошибке: старый размещенный объект ".scn" не изменяется
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARImageTrackingConfiguration()
guard let trackedImages = ARReferenceImage.referenceImages(inGroupNamed: "Photos", bundle: Bundle.main) else {
print("No images available")
return
}
configuration.trackingImages = trackedImages
configuration.maximumNumberOfTrackedImages = 1
sceneView.session.run(configuration)
}
func renderer( _ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
if let imageAnchor = anchor as? ARImageAnchor {
let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)
plane.firstMaterial?.diffuse.contents = UIColor(white: -1, alpha: 0.8)
plane.cornerRadius = 0.7
let planeNode = SCNNode(geometry: plane)
planeNode.eulerAngles.x = -.pi / 2
let jantScene = SCNScene(named: "art.scnassets/wheel.scn")
self.jantNode = jantScene?.rootNode.childNode(withName: "wheel", recursively: true)
jantNode.position = SCNVector3Zero
jantNode.position.z = 0.01
jantNode.scale = SCNVector3(x: 0.01225, y: 0.01225, z: 0.01225)
planeNode.addChildNode(jantNode)
node.addChildNode(planeNode)
}
return node
}
, когда я нажимаю на объект кнопки, добавленный, но старый объект не удаляется
@objc func buttonClicked(sender : UIButton){
let plane = SCNPlane(width: 0.7, height: 0.7)
plane.firstMaterial?.diffuse.contents = UIColor(white: -1, alpha: 0.8)
plane.cornerRadius = 0.7
let planeNode = SCNNode(geometry: plane)
planeNode.eulerAngles.x = -.pi / 2
jantScene = SCNScene(named: availableWheels[1])!
newjantNode = self.jantScene?.rootNode.childNode(withName: "wheel", recursively: true)!
newjantNode.position = SCNVector3Zero
newjantNode.position.z = 0.01
newjantNode.scale = SCNVector3(x: 0.01225, y: 0.01225, z: 0.01225)
planeNode.addChildNode(newjantNode)
node.addChildNode(newjantNode)
}