添加一个 SKLabelNode 到 Scene Kit View
Adding an SKLabelNode to Scene Kit View
我正在使用 Scene Kit 构建游戏。为了在屏幕上显示乐谱,我想在屏幕上使用 SKLabelNode,但是,当我将它附加到 SCNNode 时,它看起来非常模糊:
这是我为此编写的代码,请告诉我是否有更好的方法来执行此操作而不会使文本如此模糊。非常感谢!
func initHUD() {
let skScene = SKScene(size: CGSize(width: 100, height: 100))
skScene.backgroundColor = UIColor(white: 0.0, alpha: 0.0)
labelNode = SKLabelNode()
labelNode.fontSize = 20
labelNode.position.y = 50
labelNode.position.x = 50
skScene.addChild(labelNode)
let plane = SCNPlane(width: 1, height: 1)
let material = SCNMaterial()
material.lightingModelName = SCNLightingModelConstant
material.doubleSided = true
material.diffuse.contents = skScene
plane.materials = [material]
hudNode = SCNNode(geometry: plane)
hudNode.name = "HUD"
hudNode.rotation = SCNVector4(x: 1, y: 0, z: 0, w: 3.14159265)
hudNode.position = SCNVector3(x:0, y: 1, z: -5)
}
func updateHUD() {
labelNode.text = "\(score)"
}
为 SceneKit 场景制作 HUD 的典型方法是创建 SpriteKit SKScene
并将其设置为 SceneKit 视图的 overlaySKScene
。然后它以全分辨率呈现,并且始终以相同的视图相对大小和位置呈现。
我正在使用 Scene Kit 构建游戏。为了在屏幕上显示乐谱,我想在屏幕上使用 SKLabelNode,但是,当我将它附加到 SCNNode 时,它看起来非常模糊:
这是我为此编写的代码,请告诉我是否有更好的方法来执行此操作而不会使文本如此模糊。非常感谢!
func initHUD() {
let skScene = SKScene(size: CGSize(width: 100, height: 100))
skScene.backgroundColor = UIColor(white: 0.0, alpha: 0.0)
labelNode = SKLabelNode()
labelNode.fontSize = 20
labelNode.position.y = 50
labelNode.position.x = 50
skScene.addChild(labelNode)
let plane = SCNPlane(width: 1, height: 1)
let material = SCNMaterial()
material.lightingModelName = SCNLightingModelConstant
material.doubleSided = true
material.diffuse.contents = skScene
plane.materials = [material]
hudNode = SCNNode(geometry: plane)
hudNode.name = "HUD"
hudNode.rotation = SCNVector4(x: 1, y: 0, z: 0, w: 3.14159265)
hudNode.position = SCNVector3(x:0, y: 1, z: -5)
}
func updateHUD() {
labelNode.text = "\(score)"
}
为 SceneKit 场景制作 HUD 的典型方法是创建 SpriteKit SKScene
并将其设置为 SceneKit 视图的 overlaySKScene
。然后它以全分辨率呈现,并且始终以相同的视图相对大小和位置呈现。