gpt4 book ai didi

javascript - 加载具有相同功能的多个对象

转载 作者:行者123 更新时间:2023-11-28 07:27:54 25 4
gpt4 key购买 nike

我必须加载几个模型,并且希望能够从加载器外部访问它们。当我尝试遵循 DRY 规则时,我想创建一个用于加载和返回对象的函数。

function loadObject(obj, mtl) {
var loader = new THREE.OBJMTLLoader();
return loader.load( obj, mtl, function ( object ) {
return object;
});
}

但在主函数中使用后

    var box = loadObject('box.obj', 'box.mtl');
scene.add(box);

我得到:

THREE.Object3D.add: object not an instance of THREE.Object3D. undefined

最佳答案

您没有从 loadObject返回您认为的内容。 loader.load 的第三个参数是回调;它可能是异步调用的。 load 本身不返回任何内容,这就是 box 最终成为 undefined 的原因。您可能应该将加载完成时发生的情况传递给 loadObject:

function loadObject(obj, mtl, onSuccess) {
var loader = new THREE.OBJMTLLoader();
loader.load(obj, mtl, onSuccess);
}

var box = loadObject('box.obj', 'box.mtl', function(box) {
// 1
scene.add(box);
});

// 2
more code

请记住,对于带有回调的异步方法,“2”下面的代码可以“1”下面的代码执行。

关于javascript - 加载具有相同功能的多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com