我是使用SceneKit的新手,我的节点对于我的屏幕来说太大了(改变半径没有帮助,请看下面的代码和图片)。
代码:https://pastebin.com/GGikSTyY

let scene = SCNScene()
sceneView.autoenablesDefaultLighting = true
sceneView.allowsCameraControl = true
// If I set size to 2, 5, 120 the answer is the same.
let hydrogenAtom = SCNSphere(radius: 0.2)
hydrogenAtom.firstMaterial!.diffuse.contents = UIColor.lightGray
hydrogenAtom.firstMaterial!.specular.contents = UIColor.red
let atomsNode = SCNNode()
let carbonNode = SCNNode(geometry: hydrogenAtom)
carbonNode.position = SCNVector3Make(-6, 0, 0)
atomsNode.addChildNode(carbonNode)
scene.rootNode.addChildNode(atomsNode)
sceneView.scene = scene

viewDidLoad中有一段代码:
override func viewDidLoad() {
        super.viewDidLoad()

        sceneView.frame = self.viewMain.bounds
        sceneView.backgroundColor = UIColor.clear
        self.viewMain.addSubview(sceneView)
}

图像(对于我设置的任何半径):enter image description here
谢谢!

最佳答案

这是因为你没有创造一个相机。您只是得到了一个默认值,它以节点为中心,使其显示为相同的大小你会注意到改变球体的位置也没有明显的效果。
您可以创建这样的相机:

let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)
cameraNode.position = SCNVector3(x: 0, y: 0, z: 15)

关于swift - 对于任何指定的半径,我的SCNNode的大小都是恒定的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47422825/

10-12 14:45
查看更多