以编程方式为AR SpriteKit应用程序创建包含内容的矩形

时间:2017-11-30 13:29:42

标签: ios swift sprite-kit augmented-reality arkit

我在Xcode 9中创建了一个新的增强现实应用项目,内容技术设置为SpriteKit

这会生成一个模板项目,当您点击屏幕时,会将这个小家伙放在当前视图的中心。

enter image description here

我希望创建一些看起来像这样的东西而不是占位符表情符号:

enter image description here

这背后的想法是能够在代码中设置NameTypeRating字符串值,并从中创建一个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;
}

然而,文本全部捆绑在矩形的中心。如何在上面的概念图​​中对齐标签?

另外,文字似乎是非常像素化的,我需要应用特定设置的任何建议来对抗这个?

0 个答案:

没有答案