SCNText不会显示

时间:2018-04-25 16:30:08

标签: swift scenekit arkit scnnode scntext

在陈述我的问题之前,我想澄清一下我的问题有多个答案,不幸的是,他们都没有解决我的问题。请不要将此标记为副本。

现在这是我创建文本节点的代码

let textNode: SCNNode = {
            let text = SCNText.init(string: "250.9cm", extrusionDepth: 0.01)
            text.font = UIFont(name: "System", size: 32)
            text.flatness = 0.2
            let node = SCNNode.init(geometry:  text)
            node.pivot = SCNMatrix4Scale(node.transform, 1/72, 1/72, 1/72)
            node.scale = SCNVector3(0.1, 0.1, 0.1)
            node.geometry?.materials.first?.diffuse.contents = UIColor.red
            return node
        }()

这是由我发现的多种不同的解决方案构建的,我已经以多种不同的方式尝试过它。但是,没有一个工作。

在这里,我将1个视图添加为childNode,然后将另外3个childNodes添加到该子节点。

self.addChildNode(mainNode)

        topNode.position = SCNVector3(mainNode.getMidX(), mainNode.boundingBox.max.y, mainNode.getMidZ())
        bottomNode.position = SCNVector3(mainNode.getMidX(), mainNode.boundingBox.min.y, mainNode.getMidZ())
        textNode.position = SCNVector3(mainNode.getMidX()+0.005, mainNode.getMidY(), mainNode.getMidZ())

        mainNode.addChildNode(topNode)
        mainNode.addChildNode(bottomNode)
        mainNode.addChildNode(textNode)

正如您在下图中所看到的,一切都正确显示在我期望的位置。除了textNode无处可寻。 (请注意,它是帽子和鞋子的黑线,主要,顶部和底部节点)

enter image description here

根据其他位置属性设置,文本应完全显示在黑线的中间垂直,并略微向右水平。

我所缺少的是我在其他答案中找不到的东西。请提出建议我应该如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

嗯,很可能你的文字没有显示,因为与你确定不重复的其他问题相同的原因:它太大了。

但是我正在回答而不是投票结束重复,因为有一个额外的皱纹或两个值得呼唤。就在这里:

node.pivot = SCNMatrix4Scale(node.transform, 1/72, 1/72, 1/72)
node.scale = SCNVector3(0.1, 0.1, 0.1)

首先,设置scale并将pivot设置为比例变换具有相同的效果 - 均缩放节点的内容,因此您有效地应用了一个比例因子,即两个变换的串联。 (此外,在这些调用中,node.transform是标识,因此第一行相当于具有相同因子的SCNMatrix4MakeScale。)

其次,如this great answer中所述,pivot属性将您提供的转换的应用于节点的内容。您的变换是缩放的缩小,因此应用的变换与此相反:缩放比例增加。

documentation for pivot在逆转换部分相当不清楚。也许如果你tell Apple about it他们将修复该文档。)

把它放在一起:你将32“点”文本节点缩小到1 / 10x,然后高达72x。这与将其缩放到7.2x相同,或者只是使用230“点”字体开始。

noted elsewhere,字体的“点”大小实际上是SceneKit + ARKit中的米,所以你可能有摩天大楼大小的字母漂浮在你的右上方(如果它们不是隐形的,因为它们'超出剪辑深度)。希望你带上攀岩装备......