2015-02-07 83 views
6

我想知道是否有方法在SceneKit中沿着球體對象的表面寫文本。在球面上寫文字SceneKit?

我知道如果我有圖像,我會在表面上放置紋理並獲得這種效果,但是我想知道是否可以在球體表面動態地添加文本。

任何想法?

enter image description here

編輯:

這工作:

let layer = CALayer() 
    layer.frame = CGRectMake(0, 0, 100, 100) 
    layer.backgroundColor = UIColor.orangeColor().CGColor 

    var textLayer = CATextLayer() 
    textLayer.frame = layer.bounds 
    textLayer.fontSize = layer.bounds.size.height 
    textLayer.string = "Test" 
    textLayer.alignmentMode = kCAAlignmentLeft 
    textLayer.foregroundColor = UIColor.greenColor().CGColor 
    textLayer.display() 
    layer.addSublayer(textLayer) 

    let box = SCNBox(width: 10, height: 10, length: 10, chamferRadius: 0.5) 
    let boxNode = SCNNode(geometry: box) 
    box.firstMaterial?.locksAmbientWithDiffuse = true 
    boxNode.position = position 

    box.firstMaterial?.diffuse.contents = layer 

    scene.rootNode.addChildNode(boxNode) 

回答

3

你可以使用任何CALayer爲您SCNMaterialProperty :)

+0

內容我嘗試添加的CALayer與TextLayer在它和盒子消失...所以,我做錯了什麼。不知道是什麼。 – zumzum 2015-02-09 00:13:43

+0

好吧,現在添加背景顏色(橙色)圖層被用作框中的紋理,但我還沒有看到任何文字。 – zumzum 2015-02-09 00:28:59

+0

您也可以使用SpriteKit'SKScene'作爲材質屬性內容。無論採用哪種方式,您都可能需要混淆「contentsTransform」以使其與您想要的方向/位置一起顯示。 – rickster 2015-02-09 19:05:45