2013-04-16 3 views
1

Я создал новый Mesh из TextGeometry и толкнул его в массив сетки:Как я могу получить текст из 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.text или meshArray[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 –

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