我找不到一个很好的解释 aSCNCamera
是什么以及它的目的。这是苹果的定义:
一组相机属性,可以附加到节点以提供用于显示场景的视点。
这个定义不清楚,因为我设置了场景并添加了 aSCNNode
而没有附加 a SCNCamera
。设备摄像头的视角显示SCNNode
我将其放置在的位置没有问题,并且场景显示良好。
设备的相机和相机有什么区别SCNCamera
?
SCNCamera
将 a 附加到 aSCNNode
与不使用a 有什么好处?
如果我有多个SCNNodes
(彼此之间都没有层次结构)每个节点都需要它自己的SCNCamera
吗?
如果我SCNNodes
在一个hierarchy
(带有子节点的父节点)中有多个节点,每个节点都需要它自己的SCNCamera
还是只需要父节点?
lazy var sceneView: ARSCNView = {
let sceneView = ARSCNView()
sceneView.translatesAutoresizingMaskIntoConstraints = false
sceneView.delegate = self
return sceneView
}()
let configuration = ARWorldTrackingConfiguration()
override func viewDidLoad() {
super.viewDidLoad()
// pin sceneView to the view
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "earth")
let plane = SCNPlane(width: 0.33, height: 0.33)
plane.materials = [material]
plane.firstMaterial?.isDoubleSided = true
let myNode = SCNNode(geometry: plane)
myNode.name = "earth"
myNode.position = SCNVector3(0.0, 0.6, -0.9)
sceneView.scene.rootNode.addChildNode(myNode)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
sceneView.session.run(configuration, options: [])
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillAppear(animated)
sceneView.session.pause()
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
}