我在Xcode 9中创建了一个新的增强现实应用项目,内容技术设置为SpriteKit
。
这会生成一个模板项目,当您点击屏幕时,会将这个小家伙放在当前视图的中心。
我希望创建一些看起来像这样的东西而不是占位符表情符号:
这背后的想法是能够在代码中设置Name
,Type
和Rating
字符串值,并从中创建一个SKNode
对象,放入屏幕的中心。
我了解如何创建矩形:
func view(_ view: ARSKView, nodeFor anchor: ARAnchor) -> SKNode? {
// Create and configure a node for the anchor added to the view's session.
//more of a square than a rectangle..
var rect = SKShapeNode(rectOf: CGSize(width: 10, height: 10))
rect.fillColor = SKColor.white
rect.position = CGPoint(x: 0.5, y: 0.5)
return rect;
}
^在屏幕上给我一个白色方块
但是,如何将文本置于其上,作为同一“对象”的一部分?那可能吗?我无法在任何地方找到解决方案,我不确定如何实现它。
编辑:
以下是我根据评论中的建议创建的内容:
func view(_ view: ARSKView, nodeFor anchor: ARAnchor) -> SKNode? {
// Create and configure a node for the anchor added to the view's session.
let rect = SKShapeNode(rectOf: CGSize(width: 100, height: 50))
rect.fillColor = SKColor.white
rect.position = CGPoint(x: 0.5, y: 0.5)
let nameNode = SKLabelNode(text: "Name")
nameNode.fontSize = 10
nameNode.fontColor = UIColor.black
let typeNode = SKLabelNode(text: "Type")
typeNode.fontSize = 10
typeNode.fontColor = UIColor.black
let ratingNode = SKLabelNode(text: "Rating")
ratingNode.fontSize = 10
ratingNode.fontColor = UIColor.black
rect.addChild(nameNode)
rect.addChild(typeNode)
rect.addChild(ratingNode)
return rect;
}
然而,文本全部捆绑在矩形的中心。如何在上面的概念图中对齐标签?
另外,文字似乎是非常像素化的,我需要应用特定设置的任何建议来对抗这个?