2015-02-07 8 views
6

Zastanawiam się, czy istnieje sposób pisania tekstu wzdłuż powierzchni obiektu kuli w SceneKit.Napisz tekst na powierzchni kuli SceneKit?

Wiem, że umieszczam teksturę na powierzchni i uzyskuję tego rodzaju efekt, jeśli mam obraz, ale chcę wiedzieć, czy mogę po prostu dynamicznie dodawać tekst na powierzchni kuli.

Każdy pomysł?

enter image description here

EDIT:

to działa:

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) 

Odpowiedz

3

można użyć dowolnego CALayer jak zawartość swojej SCNMaterialProperty :)

+0

Próbowałem dodać CALayer z TextLayer w nim i pudełko znika ... Więc robię coś złego. Nie jestem pewien co. – zumzum

+0

OK, dodając kolor tła (pomarańczowy) teraz warstwa jest używana jako tekstura na pudełku, ale nie widzę jeszcze tekstu. – zumzum

+0

Możesz również użyć 'SpSciteKit' SKScene' jako zawartości właściwości materiału. Tak czy inaczej, być może będziesz musiał zepsuć zawartość 'contentsTransform', aby pojawił się w wybranej orientacji/pozycji. – rickster