javascript - ThreeJS 在异步加载后更新 FBX 对象的属性

标签 javascript three.js fbx

我正在将 FBX 对象加载到场景中

const loader = new FBXLoader();
        loader.load( '{{asset('models/model.fbx')}}', function ( logo ) {
            scene.add( logo );
            logo.position.y = 0;
            logo.position.x = 0;
            logo.position.z = 0;
            logo.updateMatrix();
        });

由于“logo”是异步加载的 FBX 对象,因此我无法在加载器函数之外访问其属性。

如何才能使其属性(如位置、旋转等)可以在加载程序外部访问?

我已经尝试将任何内容(包括 animate() 函数)放入加载器中 - 但这似乎不是“干净”的方式...

最佳答案

考虑在应用程序中使用异步/等待模式,这使得代码更容易理解。而且更干净。

const loader = new FBXLoader();
const logo = await loader.loadAsync( '{{asset('models/model.fbx')}}' );
scene.add( logo );

注意 loadAsync() 的用法适用于所有装载机。您很可能必须重构代码,以便新的 await 不会破坏您的应用程序。您可以通过使周围的方法/函数异步来避免这种情况。

关于javascript - ThreeJS 在异步加载后更新 FBX 对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73852736/

相关文章:

javascript - 从nodejs中的http请求获取值

javascript - 如何使用附加媒体流?

javascript - 轨迹球控件行为异常

javascript - 三个Js加载FBX不显示所有模型部分

c++ - 在 visual studio 中构建 fbxsdk 头文件时出现编译错误

ios - 纹理未加载到 FBX 中,使用 FBX SDK 导出

javascript - 延迟 JavaScript

javascript - Three.js/WebGL一次加载大量纹理数据,如何处理?

javascript - three.js:无法使用 THREE.OBJLoader 显示 obj 文件

javascript - 使用appendchild将一个div添加到另一个div