gpt4 book ai didi

sprite-kit - 如何给 SCNNode 添加标签?

转载 作者:行者123 更新时间:2023-12-04 16:03:51 50 4
gpt4 key购买 nike

我正在尝试向 SCNNode 添加标签。到目前为止,我已经设法将 SKLabelNode 设置为 SCNNode 的 Material 。它有点管用,我可以将 SCNNode 变成 SKLabelNode 的背景色,但我看不到文本。有时我会看到一片红色雾霾(文本颜色为红色)但没有可读文本。

我还尝试将 Material 设置为 UIView 并添加 UiLabel 作为 subview 。它再次尽可能地设置整个 SCNNode 成为 UiLabel 的背景颜色,但我看不到任何文本。

var block = SCNNode()
var spriteScene = SKScene()
var Lbl = SKLabelNode()

lbl.text = “Hello World”

lbl.color = blue (playground colour literal)
lbl. = 2 //I tried various numbers
lbl.fontColor = SKColor.red
spriteScene.addChild(lbl)

最佳答案

经过一些打击和试用后我得到了它。在获得这些大小、比例和旋转以显示我想要的标签之前,我必须尝试不同的值。
注意:我这里的节点是宽度为 0.3,高度为 0.2 的 SCNPlane,因此 SKScene 的大小和矩形的大小以及标签的位置都相应地进行了硬编码。

func addLabel(text: String){
let sk = SKScene(size: CGSize(width: 3000, height: 2000))
sk.backgroundColor = UIColor.clear

let rectangle = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 3000, height: 2000), cornerRadius: 10)
rectangle.fillColor = UIColor.black
rectangle.strokeColor = UIColor.white
rectangle.lineWidth = 5
rectangle.alpha = 0.5

let lbl = SKLabelNode(text: text)
lbl.fontSize = 160
lbl.numberOfLines = 0
lbl.fontColor = UIColor.white
lbl.fontName = "Helvetica-Bold"
lbl.position = CGPoint(x:1500,y:1000)
lbl.preferredMaxLayoutWidth = 2900
lbl.horizontalAlignmentMode = .center
lbl.verticalAlignmentMode = .center
lbl.zRotation = .pi

sk.addChild(rectangle)
sk.addChild(lbl)

let material = SCNMaterial()
material.isDoubleSided = true
material.diffuse.contents = sk
node.geometry?.materials = [material]
node.geometry?.firstMaterial?.diffuse.contentsTransform = SCNMatrix4MakeScale(Float(1), Float(1), 1)
node.geometry?.firstMaterial?.diffuse.wrapS = .repeat
node.geometry?.firstMaterial?.diffuse.wrapS = .repeat
}

关于sprite-kit - 如何给 SCNNode 添加标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49600303/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com