
248
|
第
8
章
8.3
显示
3D
对象
问题
我们想在屏幕上绘制
3D
对象。
解决方案
首先,定义一个几何对象,用于向
Scene Kit
描述该对象的形状或者外观:
let capsule = SCNCapsule(capRadius: 2.5, height: 6)
然后,用这个形状来创建一个节点对象(
SCNNode
),设置节点的位置,然后将节
点添加到场景中:
let capsuleNode = SCNNode(geometry: capsule)
capsuleNode.position = SCNVector3(x: 0, y: 0, z: 0)
scene.rootNode.addChildNode(capsuleNode)
讨论
节点(
SCNNode
)是不可见对象,它仅用于表示在某个位置中占据的一定空间。就
其本义而言,节点什么也不是,要让节点能够被用户所见,我们必须将它和各种对象,
如几何形状、镜头、灯光等联系在一起。我们将在本章的其他问题中介绍这些对象。
节点可以拥有其他节点。这就能让我们将多个对象组合在一起:如果我们移动这个
节点,所有添加到它上面的子节点都会随着一起移动。这个特点使我们很容易就创
建复杂场景,同时还能对节点进行管理。
场景包含了一个叫作“根节点”的节点。如果我们想将一个节点放进某个场景中,
我们需要在场景的
“根节点”上调用
addChildNode
方法才能将这个节点添加到场
景中。
8.4 Scene Kit
的镜头
问题
我们想在
3D
场景中通过镜头来控制玩家的视角。