使用 SKRenderer 渲染文本

Render text with SKRenderer

我在我的项目中初始化了 SKRenderer 以将其与金属一起使用。虽然我不确定自己是否正确,但我需要知道如何使用它来渲染简单的 2D 文本?

例如,这里是我们如何用 SKLabelNode 绘制文本,我们有类似的 SKRenderer 吗? 非常感谢

let winner = SKLabelNode(fontNamed: "Chalkduster")
winner.text = "You Win!"
winner.fontSize = 65
winner.fontColor = SKColor.red
winner.position = CGPoint(x: 100, y: 100)
view.addChild(winner)

您需要做的第一件事是初始化场景。

var renderer: SKRenderer
var skScene: SKScene

在你的初始化函数中:

renderer = SKRenderer(device: device)
// iphone 11 portrait
skScene = SKScene(size: CGSize(width: 1125, height: 2436))
renderer.scene = skScene

let winner = SKLabelNode(fontNamed: "Chalkduster")
winner.text = "You Win!"
winner.fontSize = 65
winner.fontColor = SKColor.red
winner.position = CGPoint(x: 1125 / 2, y: 2436 / 2)
skScene.addChild(winner)

最后在您的渲染函数中:

renderer.render(withViewport: viewport, renderCommandEncoder: renderEncoder, renderPassDescriptor: renderPassDescriptor, commandQueue: commandQueue)
renderEncoder.endEncoding()

但请记住 ui 层 (SKRenderer) 应该在最后一次渲染。