在说明我的问题是什么之前,我想澄清我的问题有多个答案,不幸的是,它们都解决不了我的问题。请不要把这个标记为副本。
下面是我必须创建文本节点的代码
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,然后将另一个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。(请注意,带帽子和鞋子的黑线是主、顶和底节点)

根据其他位置属性集,文本应该完美地出现在黑线的中间垂直和略向右水平。
我缺少的是一些我在其他答案中找不到的东西。请给我一些建议,我应该如何处理这个问题。
发布于 2018-04-26 07:40:59
嗯,很可能你的文字没有显示是因为同样的原因,因为其他的问题你肯定不是重复的:它太大了。
但我回答,而不是投票结束作为重复,因为有额外的皱纹,或两个值得呼喊。就在这里:
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。)
第二,正如在这个伟大的答案中解释的那样,pivot属性将您提供的转换反向应用于节点的内容。您的转换是规模的缩小,所以应用的转换是相反的:规模的增加。
( pivot在逆变换部分是相当不清楚的。也许如果你告诉苹果,他们会修复那个医生。)
将其组合在一起:将一个32“点”文本节点缩小到1/10倍,然后扩展到72倍。这与缩放到7.2x,或者仅仅使用230“点”字体是一样的。
作为在其他地方注意到,字体的“点”大小实际上是米在SceneKit+ARKit,所以你可能有摩天大楼大小的字母漂浮在上方和右边(如果它们不是看不见的,因为它们超出剪辑深度)。希望你带了登山装备..。
https://stackoverflow.com/questions/50027182
复制相似问题