
252
|
第
8
章
8.7
使用文本节点
问题
我们想在场景中显示
3D
文本。
解决方案
3D
文字也是一种附着在节点上的几何形状。要创建一个
3D
文本对象,需要用到
SCNText
类,然后将它附着到节点上:
let text = SCNText(string: "Text!", extrusionDepth: 0.2)
//
文字的高是
2
个单位(米)
text.font = UIFont.systemFont(ofSize: 2)
let textNode = SCNNode(geometry: text)
//
放到胶囊对象的左上位置
//
(胶囊的高度是
10
个单位)
textNode.position = SCNVector3(x: -2, y: 6, z: 0)
//
将文本添加到胶囊节点(不是场景的根节点!)
capsuleNode.addChildNode(textNode)
讨论
当我们创建一个
SCNText
对象的时候,我们需要指定它的字体属性,包括文字所
用的字体和字体的大小。需要注意的是,字体大小采用的是
Scene Kit
的单位,而
不是屏幕像素。
8.8
自定义材质
问题
我们想控制物体反射光线的方式。
解决方案
要控制物体的外观,我们需要创建材质。在
Scene Kit
中,材质用
SCNMaterial
类表
示: