#swift #scenekit
#swift #scenekit
Вопрос:
Если сцена содержит несколько камер, какую камеру использует projectPoint
метод для проецирования точек из 3D в экранное пространство? Если это определено pointOfView
свойством, то почему, когда я обновляю положение pointOfView
, данная 3D-точка по-прежнему проецируется на ту же 2D-точку?
Ответ №1:
Поскольку SCNCamera принадлежит SCNView, просто установите PoV
через свойство экземпляра «pointOfView» вида на требуемый узел камеры.
let cameraNode001 = SCNNode()
cameraNode001.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode001)
cameraNode001.position = SCNVector3(x: 0, y: 0, z: 15)
let cameraNode002 = SCNNode()
cameraNode002.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode002)
cameraNode002.position = SCNVector3(x: 10, y: 10, z: 30)
let sceneView = self.view as! SCNView
sceneView.scene = scene
sceneView.pointOfView = cameraNode001
затем вы можете изменить точку зрения:
sceneView.pointOfView = cameraNode002