2017-08-09 129 views
1
改变编程方式SceneKit三维TextNode的文本

所以我把一个3D文本节点在我的SCN场景,我想改变的Text属性的值后来在我的应用程序使用雨燕

SceneKit督察

enter image description here

以上是我如何更改文本的价值来自检查者,但有没有办法做到这一点编程?谢谢

+0

你把你的节点链接到你的SKS cene?如果是这样,那么变量名称是什么? –

回答

2

当您从Xcode的对象库中实例化一个“3D Text”对象时,您得到的是一个SCNNode,它的SCNTextgeometry

if let textGeometry = textNode.geometry as? SCNText { 
    textGeometry.string = "something" 
} 
0

所以,如果你已经将自己的文本节点与你的游戏场景,编程,你可以这样做:

textNode.geometry.string = "your string" 

它应该工作!

+0

我试过但我得到:'SCNGeometry'类型的值没有成员'string' –

+0

@JosephHajjar是SCNText吗? –

+0

我不这么认为,我认为它是SCNNode,从检查器看起来像这个http://imgur.com/HyGKCjl,上面的图像显示了检查员,当我点击它与一个额外的文本属性,但我可以没有找到一种方式来获得它的程序参考... –

0

这就是为我工作的。假设您已经在界面构建器中添加了3D文本节点,并且在节点层次结构中将其称为“CountDownText”。

在相关的视图控制器,我有两个属性:

var countDownText: SCNNode! 
var theCountDownText: SCNText! 

后来从接口构建器的节点绑定到代码(在一个设置节点功能):

countDownText = scnScene.rootNode.childNode(withName: "CountDownText", recursively: true) 
theCountDownText = countDownText.geometry as! SCNText 

任何时候你想改变该节点的显示文本,你可以这样做:

theCountDownText.string = "text"