2017-10-19 3 views
0

three.jsにテキストを追加するにはどうすればよいですか?私はこのコードを試しましたが、それはUncaught TypeError: Cannot read property 'offsetX' of undefinedのエラーを生成します。これをどうすれば解決できますか?three.jsにTextGeometryを追加するには?

ここは私の.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); 
}); 
+0

JavaScriptの問題ではないと思いますが、あなたのjsonはBigにならないとここを通過しようとしていますか? –

+0

@headmax私は投稿を更新しました – Merida

+0

ありがとう;)追加します。 –

答えて

1

問題はあなたが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を試すことができる例として


+0

ありがとう!私はそれに気付かなかった。エラーは消えましたが、テキストは表示されません。私は別のフォントを試したので、私はテキストを使うことができます。どのように私はそれを画面上に表示できますか?私は.BoxGeometryを表示できます。 – Merida

+0

あなたの質問は更新されました。メッシュの位置を決めて、 'mesh.position.x = -100;のようにテキストを試してみるようにしてください。 –

+0

I値を変更しようとしましたが、まだ表示されません。私はシーンを出力しようとしましたが、実際にはそれを読み込みますが、表示されないのは奇妙です。私はar.jsとthree.jsを試しています – Merida

関連する問題