Three.js高版本多采用ES6编写,求普通JS可用的OBJ、FBX、GFTL模型加载器
Three.js 普通JS环境兼容模型加载器问题解答
是否有官方可用的普通JS兼容版本
有,官方已经提供了预编译好的非ES6环境可用的加载器版本:
- 官方发布的Three.js完整包中,
examples/js/loaders/目录下存放的就是兼容普通JS的UMD格式加载器,包含你需要的OBJLoader.js、FBXLoader.js、GLTFLoader.js(你提到的GFTL应为输入笔误,对应通用3D传输格式为glTF)。 - 这类加载器不需要ES6模块支持,直接通过
<script>标签引入普通JS项目即可使用,无需额外配置。
如何自行将ES6版加载器转换为普通JS兼容版本
如果你需要自定义修改加载器后生成兼容版本,可按以下步骤操作:
- 取官方
examples/jsm/loaders/目录下的ES6版加载器源码作为转换基础 - 使用
rollup打包工具配合@rollup/plugin-babel插件完成转换,配置输出格式为UMD,同时将Three.js核心库设为外部依赖,避免重复打包核心代码 - 打包输出的JS文件即可直接在普通JS项目中引入使用
注意:引入兼容版加载器前必须先引入普通JS版的Three.js核心库(一般为
three.min.js),确保全局作用域下存在THREE变量,加载器会自动挂载到THREE命名空间下,调用方式和ES6模块环境完全一致,直接使用THREE.OBJLoader、THREE.FBXLoader、THREE.GLTFLoader构造实例即可。
内容的提问来源于stack exchange,提问作者MrBodean
相关产品推荐
相关产品推荐

