在说明我的问题是什么之前,我想澄清一下我的问题有多个答案,不幸的是,它们都没有解决我的问题。请不要将此标记为重复。
现在这是我必须创建我的文本节点的代码
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
那无处可寻。(注意,主要、顶部和底部节点是带有帽子和鞋子的黑线)
根据设置的其他位置属性,文本应完美地出现在垂直黑线的中间,水平略向右。
我缺少的是我在其他答案中找不到的东西。请提出我应该如何处理这个问题的建议。