将你的 gltf 模型放在 Vue 项目中的 public 文件夹下,注意,只有将 gltf 模型放在静态资源文件夹下才能被访问到。
在钩子函数 mounted 中进行模型加载:
mounted(){
this.loadModel()
},
methods:{
loadModel(){
let that = this
// gltf模型加载器
let loader = new GLTFLoader()
return new Promise(function(resolve, reject){
loader.load(
// 模型在 /public/static/building/文件夹下
"static/building/scene.gltf",
gltf => {
console.log(gltf)
gltf.scene.traverse(object => {
// 修改模型材质
let material = ...
object.material = material
})
let group = new Three.Group()
group.add(gltf.scene)
let box = new Three.Box3()
box.setFromObject(group)
let wrapper = new Three.Object3D()
wrapper.add(group)
// 根据自己模型的大小设置位置
wrapper.position.set(100, -300, 120)
// 将模型加入到场景中 ! important
that.scene.add(wrapper)
},
xhr => {
// 模型加载期间的回调函数
console.log(`${(xhr.loaded / xhr.total) * 100% building model loaded`
);
},
error => {
// 模型加载出错的回调函数
console.log("error while loading", error);
reject("load model error", error);
}
)
})
}
}
将你的 gltf 模型放在 Vue 项目中的 public 文件夹下,注意,只有将 gltf 模型放在静态资源文件夹下才能被访问到。
在钩子函数 mounted 中进行模型加载:
mounted(){
this.loadModel()
},
methods:{
loadModel(){
let that = this
// gltf模型加载器
let loader = new GLTFLoader()
return new Promise(function(resolve, reject){
loader.load(
// 模型在 /public/static/building/文件夹下
"static/building/scene.gltf",
gltf => {
console.log(gltf)
gltf.scene.traverse(object => {
// 修改模型材质
let material = ...
object.material = material
})
let group = new Three.Group()
group.add(gltf.scene)
let box = new Three.Box3()
box.setFromObject(group)
let wrapper = new Three.Object3D()
wrapper.add(group)
// 根据自己模型的大小设置位置
wrapper.position.set(100, -300, 120)
// 将模型加入到场景中 ! important
that.scene.add(wrapper)
},
xhr => {
// 模型加载期间的回调函数
console.log(`${(xhr.loaded / xhr.total) * 100% building model loaded`
);
},
error => {
// 模型加载出错的回调函数
console.log("error while loading", error);
reject("load model error", error);
}
)
})
}
}