【发布时间】:2018-10-06 05:17:16
【问题描述】:
在说明我的问题是什么之前,我想澄清一下,我的问题有多个答案,不幸的是,没有一个能解决我的问题。请不要将此标记为重复。
现在这是我必须创建文本节点的代码
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。 (注意,主要、顶部和底部节点是带有帽子和鞋子的黑线)
根据设置的其他位置属性,文本应在垂直方向完美地出现在黑线中间,水平方向略向右。
我缺少的是我在其他答案中找不到的东西。请提出我应该如何处理的建议。
【问题讨论】:
-
尝试让文本变大,同时使用比例和字体大小。可能是它最终落后于覆盖它的其他节点,或者文本太小而无法看到。
-
将文本字体设置为 32 号与标准字体大小不同。 SceneKit 中的 32 个单位是 32 米,因此将其缩放 0.1 仍然意味着大小将是 3.2 米,因此这可能是您看不到文本的原因。尝试扩展它,看看是否有帮助
-
@picciano 阅读我写的内容。我明确表示我看过其他类似的问题,但他们得到的答案并不能解决我的问题
-
@JoshRobbins 我在另一个关于 SCNText 没有出现的问题中读到了这个答案,遗憾的是这对我来说似乎不是问题。我尝试了多种缩放和字体大小。
标签: swift scenekit arkit scnnode scntext