在我的Nuxt项目中,我有一个使用Three.js制作的背景场景。现在,我想将一个.obj加载到该场景中。因此,必须通过组件加载模型。
我的index.vue组件:
export default {
name: 'scene',
data () {
return {
}
},
mounted () {
if(!this.scene) this.scene = new Scene({
$canvas: this.$refs.canvas,
});
}
}
在我的.js文件中(在组件内部,.vue也位于其中:]]]
import * as THREE from "three"; import Common from "../Common"; import { OBJLoader2 } from '~/node_modules/three/examples/jsm/loaders/OBJLoader2.js'; const Model = require('@/assets/models/background_1.obj') export default class Model_1{ constructor(){ this.init(); } init(){ var loader = new OBJLoader2(); console.log(Model) loader.load(Model, (root) => { Common.scene.add(root); }); } }
Nuxt配置:
export default { mode: 'universal', build: { vendor: ['hammerjs'], extend (config, ctx) { config.module.rules.push( { test: /\.(obj|gltf)$/i, loader: 'file-loader', } ); } } }
出现以下错误:
Cannot find module '@/assets/models/background_1.obj'
尽管.vue组件将查看资产文件夹,获取obj并仅反映url。但它正在寻找一个我不太了解的模块🤷️.obj文件位于asset / models文件夹中。
在我的Nuxt项目中,我有一个使用Three.js制作的背景场景。现在,我想将一个.obj加载到该场景中。因此,必须通过组件加载模型。我的index.vue组件:导出默认值{...
[确定,尽管每个文档都说如果文件位于static/file
中,则必须使用src static/file
。现在这对我不起作用,而仅使用file
作为源起作用。它正在工作,但是有人可以澄清一下,因为我已经有两天了,而且有很多偏头痛这个问题😐