gpt4 book ai didi

javascript - 如何在 Three.js 中返回对象而不是将其添加到场景中? (FBX加载程序)

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

如果我在 Javascript 中调用这个函数,它会工作,并将对象添加到场景中:

var loader = new THREE.FBXLoader();

function returnFBX(PATH, scene) {
loader.load('obj/' + PATH + '.fbx', function (object) {
scene.add(object);
});
}

但是,如果我替换:

scene.add(object);

与:

return object;

似乎返回undefined。

我尝试使用 Promises 以及加载管理器,但两者似乎都只能将对象添加到场景中,而不能返回对象。

我认为这是因为两个函数相互嵌套,而且加载是异步的。但我不确定如何解决这个问题,因为这是加载对象的标准方式。

最佳答案

load 是异步的 - 使用回调或使用 await,即

const afterload = object => { console.log(object); }

function returnFBX(PATH, scene) {
loader.load('obj/' + PATH + '.fbx', function (object) {
afterload(object);
});
}

async function returnFBX(PATH, scene) {
return loader.load('obj/' + PATH + '.fbx', function (object) {
return object;
});
}

let afterloadObject = await returnFBX( ... )

关于javascript - 如何在 Three.js 中返回对象而不是将其添加到场景中? (FBX加载程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53823695/

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