2016-09-22 52 views
4

真的很簡單的問題,由於某種原因,我找不到任何地方。我如何在SCNNode的3D面上書寫2D文字? 例如,在這樣的事情:如何將文本放在scenekit中的節點上?

let geo = SCNBox(width: 20, height: 20, length: 20, chamferRadius: 0.0); 
//geo.writeFace(postion, text) 
let box = SCNNode(geometry: geo); 

當然的評論是由。像這樣嗎?

回答

5

您需要創建所需字體和文本的紋理,然後將其應用爲對象上材質的一部分。儘管我沒有在Scene Kit中看到任何類似UVW貼圖的東西來讓您控制放置位置。它必須在那裏。如果您只使用SCN幾何圖形,則可能是正確的,因爲SCNBox至少允許針對材質/紋理的每面規格。

您可以動態創建2D類型的紋理與使用textureToNode任UIKit的文本繪製到上下文,或光柵化雪碧套件文字: https://developer.apple.com/reference/spritekit/skview/1520114-texturefromnode?language=objc

+0

這似乎是相當低效...我想這就是唯一的選擇?奇怪的。 –

+0

SceneKit沒有貼圖或任何其他動態創建紋理的有趣方式。我相信你會在SpriteKit/SceneKit整合戰鬥中多次重複「這看起來相當低效......」。然後是GameplayKit;) – Confused

+0

多麼令人沮喪!你推薦的任何其他類似的庫(場景,節點等)都具有這種功能? –

相關問題