Three js 4 调试工具ui

文章目录

安装和引入包

安装包

javascript 复制代码
npm i lil-gui

引入包

javascript 复制代码
import GUI from "lil-gui";

使用

所有都是直接写在main.js下

先定义GUI对象

javascript 复制代码
//定义一个gui对象
const gui = new GUI();

添加按钮

javascript 复制代码
//定义一个对象,对象里有两个键值对, 值是两个匿名函数
let eventObj=
    {
        Fullscreen:function ()
        {
            //全屏
            document.body.requestFullscreen();
        },
        ExitFullscreen:function ()
        {
            document.exitFullscreen();
        }
    }
//添加按钮  会自动识别属性的值是不是函数,如果是,会自动创建按钮
gui.add(eventObj,"Fullscreen").name("全屏");//不写name会默认用事件名当name
gui.add(eventObj,"ExitFullscreen").name("退出全屏");

添加滑块

javascript 复制代码
//添加滑块 控制立方体的位置  -5到5是滑块的范围
gui.add(cube.position,"x",-5,5).name("平滑设置立方体x轴位置");
//添加有固定步长的滑块
gui.add(cube.position,"x").min(-5).max(5).step(1).name("固定步长设置立方体的x轴位置");

添加自定义折叠框 和 值变化事件

javascript 复制代码
let folder = gui.addFolder("固定步长设置位置")
folder.add(cube.position,"x").min(-5).max(5).step(1).name("固定步长设置立方体的x轴位置").onChange(v=>{console.log(v)});//值改变后立刻打印
folder.add(cube.position,"y").min(-5).max(5).step(1).name("固定步长设置立方体的y轴位置").onFinishChange(v=>{console.log(v)});//完成拖动后再打印
folder.add(cube.position,"z").min(-5).max(5).step(1).name("固定步长设置立方体的z轴位置");

bool类型勾选框

javascript 复制代码
gui.add(material_red,"wireframe").name("父物体线框模式").setValue(false);//使用setvalue来设置默认值

wireframe是materal的一个属性,设置是否以线框模式显示

javascript 复制代码
material_red.wireframe = true;

颜色选择框

javascript 复制代码
//先定义一个颜色
let colorParams = 
    {
        cubeColor:"#0000ff"
    }
//将选择框加入gui
gui.addColor(colorParams,"cubeColor").name("立方体颜色").onChange(v=>
{
    cube.material.color.set(v);
});    

枚举选择

javascript 复制代码
gui.add(THREE.ColorManagement, "workingColorSpace",  {
    Linear: THREE.LinearSRGBColorSpace,
    SRGB: THREE.SRGBColorSpace,
})
    .name("工作色彩空间")
    .onChange(() => {
        material.needsUpdate = true;
    });
相关推荐
独立开发之道3 天前
【three.js教程】场景图:用“父子关系“让月亮自动绕地球转
threejs
avi91115 天前
Threejs新版本后glb导出提示.x问题GLTFExporter,替代3dmax
开发语言·前端·javascript·threejs·glb·gltfexporter
答案—answer20 天前
VibeCoding 能做到什么程度?我用它做了一座 3D 数字博物馆
3d·ai编程·threejs·vibecoding
a1117761 个月前
三色软糖坠落玻璃池 THreeJS kimi
前端·人工智能·threejs
一根数据线2 个月前
从建筑可视化到数字孪生:Three.js如何改变3D展示?
3d建模·3d模型轻量化·threejs·3d模型·模型减面·lod·轻装3d
gis分享者3 个月前
学习threejs,实现炫酷的3D编程语言地球可视化效果
可视化·编程语言·threejs·地球·spheregeometry·raycaster·meshbasic
gis分享者3 个月前
学习threejs,实现分形球体交互可视化
交互·threejs·分形·glsl·球体·shadermaterial·planegeometry
gis分享者3 个月前
学习threejs,实现Transformer架构三维模拟
深度学习·transformer·threejs·三维·renderpass·effectcomposer·unrealbloompass
gis分享者4 个月前
学习threejs,把“数据流”做成未来城市光轨
threejs·数据流·shadermaterial·renderpass·unrealbloompass·城市光轨·shaderpass