本人能力不足,全是参考了threejs案例修改实现的,如有错误,还望指教
第一步加载GUI(位置有可能不一样)
import {GUI} from 'three/addons/libs/lil-gui.module.min.js';
第二步将你需要在同一页面切换的模型放在一个文件夹内,并且保持模型类型一致,比如有三个模型需要单页面加载切换,那么这三个模型都是同一格式(例如Fbx格式),并且都在同一文件夹(代码示例中路径为/model/fbx/)
第三步Gui选择器修改(注意模型文件名是否正确)
const assets = [
'模型测试一',
'模型测试二',
'模型测试三'
];
加载器修改
loader = new FBXLoader(manager);
loadAsset(params.asset);
window.addEventListener('resize', onWindowResize);
//
const gui = new GUI();
gui.add(params, 'asset', assets).onChange(function (value) {
loadAsset(value);
});
gui.add(obj, 'myString')
gui.add(obj, 'myFunction')
}
function loadAsset(asset) {
loader.load('models/fbx/' + asset + '.fbx', function (group) {
if (object) {
object.traverse(function (child) {
if (child.material) child.material.dispose();
if (child.material && child.material.map) child.material.map.dispose();
if (child.geometry) child.geometry.dispose();
});
scene.remove(object);
}
//
object = group;
});
}
其中loader.load后面的 'models/fbx/' 请修改为自己存放模型文件的路径 ,后面的‘.fbx’ 为你模型的格式
成功样式是这样的
模型可以自由切换,如模型较大,加载需要等待一会