我是使用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
谢谢!
答案 0 :(得分:1)
这是因为您没有创建相机。您只是获得一个以节点为中心的默认值,使其看起来大小相同。你会注意到改变球体的位置也没有明显的效果。
你可以像这样创建一个相机:
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
scene.rootNode.addChildNode(cameraNode)
cameraNode.position = SCNVector3(x: 0, y: 0, z: 15)