使用 Swift 以编程方式更改 SceneKit 中 3D TextNode 的文本
Changing programmatically the text of a 3D TextNode in SceneKit using Swift
所以我在我的 SCN 场景中放置了一个 3D 文本节点,我想稍后在我的应用程序中更改文本的值 属性
SceneKit 检查器
以上是我如何从检查器更改文本的值,但有没有办法以编程方式进行更改?谢谢
因此,如果您已将文本节点与游戏场景链接起来,您可以通过编程方式执行以下操作:
textNode.geometry.string = "your string"
应该可以!
当您从 Xcode 中的对象库实例化“3D 文本”对象时,您得到的是 SCNNode
that has a SCNText
as its geometry
。
if let textGeometry = textNode.geometry as? SCNText {
textGeometry.string = "something"
}
这对我有用。假设您在界面生成器中添加了一个 3D 文本节点,并且在节点层次结构中称为 "CountDownText"。
在相关的视图控制器中,我有两个属性:
var countDownText: SCNNode!
var theCountDownText: SCNText!
稍后,将界面生成器中的节点绑定到代码(在设置节点函数中):
countDownText = scnScene.rootNode.childNode(withName: "CountDownText", recursively: true)
theCountDownText = countDownText.geometry as! SCNText
任何时候你想改变那个节点的显示文本,你可以这样做:
theCountDownText.string = "text"
所以我在我的 SCN 场景中放置了一个 3D 文本节点,我想稍后在我的应用程序中更改文本的值 属性
SceneKit 检查器
以上是我如何从检查器更改文本的值,但有没有办法以编程方式进行更改?谢谢
因此,如果您已将文本节点与游戏场景链接起来,您可以通过编程方式执行以下操作:
textNode.geometry.string = "your string"
应该可以!
当您从 Xcode 中的对象库实例化“3D 文本”对象时,您得到的是 SCNNode
that has a SCNText
as its geometry
。
if let textGeometry = textNode.geometry as? SCNText {
textGeometry.string = "something"
}
这对我有用。假设您在界面生成器中添加了一个 3D 文本节点,并且在节点层次结构中称为 "CountDownText"。
在相关的视图控制器中,我有两个属性:
var countDownText: SCNNode!
var theCountDownText: SCNText!
稍后,将界面生成器中的节点绑定到代码(在设置节点函数中):
countDownText = scnScene.rootNode.childNode(withName: "CountDownText", recursively: true)
theCountDownText = countDownText.geometry as! SCNText
任何时候你想改变那个节点的显示文本,你可以这样做:
theCountDownText.string = "text"