2015-02-07 3 views
6

Мне интересно, есть ли способ написать текст по поверхности объекта сферы в SceneKit.Напишите текст на поверхности сферы SceneKit?

Я знаю, что накладываю текстуру на поверхность и получаю такой эффект, если у меня есть изображение, но я хочу знать, могу ли я просто добавить текст динамически каким-то образом поверх поверхности сферы.

Любая идея?

enter image description here

EDIT:

Это работает:

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

+0

Хорошо, добавив цвет фона (оранжевый), теперь слой используется как текстура на ящике, но я пока не вижу текста. – zumzum

+0

Вы также можете использовать SpriteKit 'SKScene' как материальное свойство. В любом случае вам может понадобиться испортить «contentTransform», чтобы он отображался с ориентацией/положением, которое вы хотите. – rickster

Смежные вопросы