首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCNText -背景“语音气泡”

SCNText -背景“语音气泡”
EN

Stack Overflow用户
提问于 2017-11-02 10:43:42
回答 2查看 1.6K关注 0票数 2

如何将背景(例如“语音气泡”或矩形)插入到SCNtext中?具体来说,如果我将"Hello“插入为SCNText (显然是作为场景中的SCNNode ),那么如何仅为该文本添加背景?会不会是一个UIimage,它将作为一个SCNNode插入到"Hello“中相同的位置(请记住,SCNNode在SceneKit中没有任何背景)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-03 02:28:02

您可以使用SCNPlane作为另一个SCNNode,将SCNMaterial分配给它的几何学,并将该材料的diffuse.contents属性设置为要使用的背景图像。然后,是的,将它放在与SCNText节点相同的位置,但其位置.z值略低于SCNText节点,因此它将位于其后面。如果计划移动到文本节点或旋转文本节点,请将SCNPlane节点添加为文本节点的子节点。

票数 5
EN

Stack Overflow用户

发布于 2018-07-18 05:10:49

这是一个示例代码。它将添加SCNPlane作为SCNTextNode的背景。

代码语言:javascript
复制
let minVec = textNode.boundingBox.min
let maxVec = textNode.boundingBox.max
let bound = SCNVector3Make(maxVec.x - minVec.x, 
                           maxVec.y - minVec.y, 
                           maxVec.z - minVec.z);

let plane = SCNPlane(width: CGFloat(bound.x + 1), 
                    height: CGFloat(bound.y + 1))
plane.cornerRadius = 0.2
plane.firstMaterial?.diffuse.contents = UIColor.black.withAlphaComponent(0.9)

let planeNode = SCNNode(geometry: plane)
planeNode.position = SCNVector3(CGFloat( minVec.x) + CGFloat(bound.x) / 2 , 
                                CGFloat( minVec.y) + CGFloat(bound.y) / 2,CGFloat(minVec.z - 0.01))

textNode.addChildNode(planeNode)
planeNode.name = "text"

希望这对某人有帮助

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47073334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档