在页面添加模型后,如果需要页面中的模型展现出不同的位置、形态或颜色,初学者可能只会去一行一行的修改对应的属性和代码,这样工作效率不仅低,对于初学者来说学习效率也不高,所以今天介绍一下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(*≧▽≦)ツ┏━┓