1

我创建了新MeshTextGeometry并将其推入网格数组:

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 中)获得相同的文本?

我在文档中没有发现任何有用的东西。

4

1 回答 1

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

于 2013-04-16T07:52:07.560 回答