【发布时间】:2015-07-01 22:08:31
【问题描述】:
如果我将framemat 分配给createScene(ID,geometry,1,framemat),它可以正常工作,如果我分配createScene( ID, geometry, 1, materials[ID] ) 它就不行。
var jsonLoader = new THREE.JSONLoader(),
paths = [
"obj/jgd/GALD-JGD-frame.json",
"obj/jgd/GALD-JGD-logo.json",
"obj/jgd/GALD-JGD-light.json"
],
materials = [
"framemat",
"logomat",
"lightmat"
],
objNum = paths.length; // Cache obects.length
for ( var id = 0; id < paths.length; id++ ) {
(function(){ // IIFE start
jsonLoader.load( paths[id], function( geometry, materials ) {
createScene( id, geometry, 1, materials[id] )
}
);
})(); // IIFE end
}
在这里创建场景很有趣:
function createScene( id, geometry, scale, material ) {
geometry.computeTangents();
objects[id]= new THREE.Mesh( geometry, material );
objects[id].scale.x = objects[id].scale.y = objects[id].scale.z = scale;
scene.add( objects[id] );
}
【问题讨论】:
-
为什么你的材料是字符串?是不是打字错误?
标签: javascript three.js