使用 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"