Three.jsでテクスチャを貼りつけた物体を表示させようと思っています。
多数のテクスチャを読み込みたいので「loadqueue」を用いて一気に読み込んでから表示させようと思ったのですが、実際に実行したところ
texleft_center is not defined
というエラーが出て画面が黒いままになってしまいました。
変数が定義されていないため発生しているらしいのですが、最初のloadQueue.on内の変数を使っているはずという認識で、どのように直せばいいのか見当がついていない状態です。
javascript
1let loadQueue = new createjs.LoadQueue(); 2 3function init() { 4 let manifest = [ 5 {id: 'left_center', src: './texture_petro/center_left.jpg'}, 6 //{id: 'left_center', src: 'http://localhost/center_left.jpg'}, 7 {id: 'center_center', src: './texture_petro/center_center.jpg'}, 8 {id: 'right_center', src: './texture_petro/center_right.jpg'}, 9 ]; 10 11 function getTexture(name) { 12 let image = loadQueue.getResult(name); 13 let texture = new THREE.Texture(image); 14 texture.needsUpdate = true; 15 return texture; 16 } 17 18 loadQueue.on('complete', function(){ 19 var image = loadQueue.getResult('left_center'); 20 var texleft_center = new THREE.Texture(image); 21 texleft_center.needsUpdate = true; 22 }); 23 24 25 loadQueue.loadManifest(manifest); 26 27 //(略) 28 //オブジェクト群 29 var obj = new THREE.Group(); 30 31 const GSquare = new THREE.BoxGeometry(1000,1000,1000); 32 33 const MSquare = new THREE.MeshPhongMaterial({ // 材質 34 map: texleft_center,//ここでエラーが発生 35 //map:getTexture('left_center'), 36 side: THREE.DoubleSide // 裏からも見えるようにする 37 }) 38 const Square = new THREE.Mesh(GSquare, MSquare); 39 40 obj.add(Square);
回答1件
あなたの回答
tips
プレビュー