我是three.js的初学者。我在three.js中创建了3D obj模型文件。如何将对象(3D .obj)返回到另一个函数?以及如何将原始颜色显示为.obj 3D?
的Javascript
this.draw3DObj = function (startX, startY, endX, endY, objType) {
switch (objType) {
case "window":
var loader = new THREE.OBJLoader();
var material = new THREE.MeshNormalMaterial({
color: 0xbcb9b1,
side: THREE.DoubleSide
});
loader.load('model/window.obj', function(object) {
object.traverse(function(child) {
if (child instanceof THREE.Mesh) {
child.material = material;
}
});
scene1.add(object);
object.position.x = width;
object.position.y = depth;
object.position.z = height;
},
function(xhr) {
console.log((xhr.loaded / xhr.total * 100) + '% loaded');
},
function(error) {
console.log('An error happened');
}
);
break;
}
return object; // How to return?
};
答案 0 :(得分:0)
您不能直接返回该对象,因为加载为异步。传递给loader.load
的第一个参数是在加载对象时调用的回调。在该函数结束时,您可以调用另一个函数并传递该对象。