我正在将 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/