Я хочу иметь возможность создать собственный узел камеры в SceneKit и просматривать мою сцену с него (вместо камеры по умолчанию).
Однако я столкнулся с очень странной проблемой со SceneKit:
- Если я использую
SCNCamera
, в моей сцене ничего не появляется. - Если я не использую
SCNCamera
, объекты в моей сцене отображаются правильно.
Это код, который я использую (очень простой код из учебника):
import UIKit
import SceneKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let sceneView = SCNView()
sceneView.frame = self.view.frame
self.view.addSubview(sceneView)
let scene = SCNScene()
sceneView.autoenablesDefaultLighting = true
sceneView.allowsCameraControl = true
let cameraNode = SCNNode()
// If the below line of code is commented out (so no SCNCamera is added), everything shows up
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)
let sphere = SCNSphere(radius: 5)
sphere.firstMaterial?.diffuse.contents = UIColor.red
let sphereNode = SCNNode(geometry: sphere)
cameraNode.addChildNode(sphereNode)
sceneView.backgroundColor = UIColor.green
sceneView.scene = scene
}
}
Это кажется довольно простым, но я не могу найти причину, почему это происходит на SO, et c.
Странно, я также замечаю, что если я пытаюсь получить доступ к узлу камеры через sceneView.pointOfView
, я получаю nil
, даже если sceneView.allowsCameraControl
установлен на true
Любая помощь приветствуется!