在页面添加模型后,如果需要页面中的模型展现出不同的位置、形态或颜色,初学者可能只会去一行一行的修改对应的属性和代码,这样工作效率不仅低,对于初学者来说学习效率也不高,所以今天介绍一下three.js中内置的Gui面板,以方便初学者进行开发和学习。

一、首先导入lil.gui

import { GUI } from "three/examples/jsm/libs/lil-gui.module.min.js";

可在node_modules中找到

二、创建GUI

// 创建GUI
const gui = new GUI();

三、创建事件对象

let eventObj = {
    Fullscreen: function(){
         // 全屏
        document.body.requestFullscreen();
        console.log("全屏");
    },
    ExitFullscreen: function(){
         // 退出全屏
        document.exitFullscreen();
        console.log("退出全屏");
    }
}

这里我定义了两个按钮事件,分别是全屏和退出全屏

四、为GUI添加按钮(事件)

ui.add(eventObj,"Fullscreen").name("全屏")
gui.add(eventObj,"ExitFullscreen").name("退出全屏")

效果如下:

除此之外,如果想将其打包进下拉列表中,可以使用addFolder

let folder = gui.addFolder("立方体位置")
// gui.add(cube.position,"x", -5,5).name("x轴")
folder.add(cube.position,"x").min(-10).max(10).step(0.5).name("x轴的位置").onChange((val)=>{//onChange类似事件监听,这是一个回调
    console.log("x轴的位置:", val);
})
folder.add(cube.position,"y").min(-10).max(10).step(0.5).name("y轴的位置").onFinishChange((val)=>{//onFinshChang为出触发完毕后触发回调
    console.log("y轴的位置", val);
})
folder.add(cube.position,"z").min(-10).max(10).step(0.5).name("z轴的位置")

效果如下:

以上就是使用three.js的GUI面板的方法 o(*≧▽≦)ツ┏━┓

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐