javascript - 如何在 Three.js 中添加 TextGeometry?

标签 javascript three.js

如何在 Three.js 中添加文本?我已经尝试过这段代码,但它产生了错误 Uncaught TypeError: Cannot read property 'offsetX' of undefined。我该如何解决这个问题?

这是我的 .json file .

var loader = new THREE.FontLoader();
loader.load( 'https://thefortcity.dev/build/fonts/FontAwesome_Regular.json', function (font) {
    var textGeometry = new THREE.TextGeometry( "text", {
        font: font,

        size: 50,
        height: 10,
        curveSegments: 12,

        bevelThickness: 1,
        bevelSize: 1,
        bevelEnabled: true
    });

    var textMaterial = new THREE.MeshPhongMaterial( 
        { color: 0xff0000, specular: 0xffffff }
    );

    var mesh = new THREE.Mesh(textGeometry, textMaterial);

    scene.add(mesh);
});  

最佳答案

问题是您正在使用 Font Awesome。如果您仔细查看字体定义文件,您将找不到您想要显示的 "text" 中任何字母的定义。如果您尝试其他方法,例如:

/** 
   below boxes stand for: 
   - fa-volume-up []
   - fa-font []
   - fa-italic []
   - fa-align-right []
*/
var textGeometry = new THREE.TextGeometry( "   ", {

然后它应该可以工作。 您可以从 cheatsheet 复制以上符号并将它们粘贴到您的代码中以检查其是否有效。

<小时/>

作为示例,您可以尝试 this plunkr .

关于javascript - 如何在 Three.js 中添加 TextGeometry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824129/

相关文章:

javascript - 使用phoneGap API有什么好处

javascript - 单击 PHP 后禁用按钮

javascript - ionic : cordova is not defined

javascript - 在 Three.js 中基于法线旋转向量

javascript - Jest 模拟函数在其他函数中调用时不起作用

javascript - 为什么在 p5.js 中打开 orbitControl() 时球体会随机超出绘制范围?

javascript - Threejs数组索引错误: Index expression must be constant

javascript - ThreeJS ObjectLoader-无法读取未定义的属性 'fog'

javascript - 如何使用 3.JS 和 Leap Motion 制作心跳?

javascript - Three.js 导入 Blender 模型。未捕获的类型错误 : Cannot read property 'x' of undefined