2013-04-16 21 views
1

我創造了新的MeshTextGeometry推到網格陣列:如何從THREE.TextGeometry獲取文本?

var text3d = new THREE.TextGeometry("Hello!", { 
    font: "hevletiker" 
}); 
text3d.computeBoundingBox(); 
var textMaterial = new THREE.MeshBasicMaterial({ color: 0xb0bca7, overdraw: true }); 
meshArray.push(new THREE.Mesh(text3d, textMaterial)); 

所以,我的問題是:

  1. 我怎麼會從text3d對象獲取原文?
  2. 如何從Mesh對象(它包含在meshArray中)獲得相同的文本?

我在documentation沒有找到有用的東西。

回答

3

THREE.TextGeometry立即將文本轉換爲形狀,並且不將原始文本存儲在任何地方。之後無法得到它。

您當然可以自由地將變量綁定到text3d,就像javascript中的任何對象一樣。

var mytext = "Hello!"; 
var text3d = new THREE.TextGeometry(mytext, { 
    font: "hevletiker" 
}); 
text3d.text = mytext; // storing this for later use... 
text3d.computeBoundingBox(); 
var textMaterial = new THREE.MeshBasicMaterial({ color: 0xb0bca7, overdraw: true }); 
meshArray.push(new THREE.Mesh(text3d, textMaterial)); 

如果你這樣做,你以後可以讀取text3d.text或從網格與mesh.geometry.textmeshArray[xxx].geometry.text

+0

你能解釋一下如何更改文本,請文本?我嘗試閱讀'text3dItem.geometry.text'(其中text3dItem是我的網格:'var text3dItem = new THREE.Mesh(text3d_volume,material);')...或者我應該爲此打開一個新問題? –

+0

@EchtEinfachTV,所以你無法閱讀文本屬性? – bsiamionau

+0

@zvdh我無法在運行時設置文本。我在5分鐘前在該項目的存儲庫中報告了此問題:https://github.com/mrdoob/three.js/issues/4324 –