lil-gui

开始使用

  • 本节使用的代码是在上一节的基础上修改。
  • lil-gui常用的方法:
  1. .add() 将控制器添加到GUI,使用typeof运算符推断控制器类型。
  2. .addColor() 将颜色控制器添加到GUI。
  3. .addFolder() 以层级的形式创建一个新的GUI。

简单示例

  • 使用非常简单,引入控件。实例化GUI后,通过.add()传入要修改的对象,和对象中要修改的属性名。
  • 它能自动生成对应的界面组件,修改界面组件的值,实时同步到对象中。
import { GUI } from 'https://threejsfundamentals.org/threejs/../3rdparty/dat.gui.module.js'const obj = {myBoolean: true,myString: 'lil-gui',myNumber: 1,myFunction: function () {alert('hi')}
}
const gui = new GUI()
gui.add(obj, 'myBoolean') // 单选
gui.add(obj, 'myString') // 文本
gui.add(obj, 'myNumber') // 数字
gui.add(obj, 'myFunction') // 按钮

正式使用

  • 在上一节中我们的辅助相机是固定,下面我们就来通过界面组件来修改辅助相机。
  • 修改相机矩阵属性。这里使用.onChange()在值修改后调用回调函数,因为相机矩阵修改需要调用.updateProjectionMatrix()才会生效。
    import { GUI } from 'https://threejsfundamentals.org/threejs/../3rdparty/dat.gui.module.js'...// 辅助相机...function updateCamera() {camera1.updateProjectionMatrix()}const gui = new GUI()gui.add(camera1, 'fov', 1, 180).onChange(updateCamera)gui.add(camera1, 'near', 1, 200).onChange(updateCamera)gui.add(camera1, 'far', 1, 200).onChange(updateCamera)...

  • 修改全局相机位置。.position是一个Vector3()不能直接传入。我们需要自定义一个对象来操作他。
      class PositionGUI {constructor(obj, name) {this.obj = objthis.name = name}get modify() {return this.obj[this.name]}set modify(v) {this.obj[this.name] = v}}const folder = gui.addFolder('全局Position')folder.add(new PositionGUI(camera.position, 'x'), 'modify', 0, 200).name('x')folder.add(new PositionGUI(camera.position, 'y'), 'modify', 0, 200).name('y')folder.add(new PositionGUI(camera.position, 'z'), 'modify', 0, 200).name('z')

  • 创建一个新对象,修改属性的get、set方法。在方法中我们就可以修改其他对象来完成操作。

总结

上面只是把常用的方式简单做了简述,详细的需要在官网中去了解。在three.js的社区中,有很多好用的控件不需要你全部理解,只需要知道有什么控件,是做什么用的。在以后的开发中会减轻很多工作量。

Three.js - 图形界面工具(lil-gui)(四)相关推荐

  1. JDK 内置图形界面工具:海阔凭鱼跃,天高任鸟飞

    GUI 图形界面工具,主要是 3 款:JConsole.JVisualVM.JMC.其实这三个产品可以说是 3 代不同的 JVM 分析工具. 这三个工具都支持我们分析本地 JVM 进程,或者通过 JM ...

  2. swing开发图形界面工具配置(可自由拖控件上去)

    swing开发图形界面工具,eclipse swing图形化操作界面工具配置 1.有一个小功能要有一个界面,之前知道有一个 图形化界面的(就是可以往上面拖控件布局的工具)JBuilder,今天上午就下 ...

  3. ssh开启图形界面_分享|3 个 Linux 上的 SSH 图形界面工具

    了解一下这三个用于 Linux 上的 SSH 图形界面工具. 在你担任 Linux 管理员的职业生涯中,你会使用 Secure Shell(SSH)远程连接到 Linux 服务器或桌面.可能你曾经在某 ...

  4. mybatis-generator-gui 一款 mybatis generator 的图形界面工具

    mybatis-generator-gui 一款 mybatis generator 的图形界面工具 一.创建 MySQL 数据库,创建 2 两个表: 之前介绍过多次命令行创建数据库表了,查看 MyS ...

  5. 数据库、数据库管理系统、SQL和图形界面工具的关系

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  6. Oracle(3)——Oracle图形界面工具创建数据库

    具体操作步骤详情: 1.图形界面工具首界面 Database Configuration Assistant 点击下一步 2.默认 点击下一步 3.默认 点击下一步 4.设置全局数据库名.SID 为新 ...

  7. 如何从光盘本地安装CentOS 7图形界面(Gnome GUI)

    本例中通过在CentOS 7中修改repo文件,直接从光盘或者ISO镜像文件安装Gnome图形界面(Gnome GUI),从而避免耗时从官网或镜像下载. 1.首先确保光盘或者ISO镜像文件正确连接到客 ...

  8. SQL server数据库的操作步骤·图形界面工具

    简介:一个SQL server数据库至少包括主数据文件和事务日志文件即以.mdf ..ldf为扩展名的数据文件和日志文件.在SQL server系统中,通常有两种方式创建数据库:一种是使用图形界面工具 ...

  9. 代码管理工具GIT之图形界面工具TortoiseGit

    一.程序员为什么要学习和使用GIT呢?  1.当一个项目需要由众多开发人员协同开发时,很难保证相互的代码之间不发生冲突.使用git,可以良好的进行模块代码合并,从而组成一个项目.非常适合团队进行敏捷开 ...

最新文章

  1. 一生受益的三个小故事
  2. 怎么看电脑屏幕尺寸_经常面对电脑怎么护眼?电脑族怎么保养身体?
  3. python3代码块
  4. ArcGis 10+Oracle发布WFS-T服务,无法更新Feature的解决方法
  5. 关于SQL语言,这些你不得不了解!
  6. HTML怎么去除数组的重复元素,js去除数组中重复元素并排序
  7. 2018蓝桥杯省赛---java---C---1(哪天返回)
  8. 前端学习(1388):多人管理项目8user登录
  9. java configuration_关于JAVA 中的Configuration类
  10. 什么是document对象?如何获取文档对象上的元素?_dom对象
  11. linux 关闭scp服务器,Linux系统如何关闭scp和sftp命令
  12. 通俗易懂理解朴素贝叶斯分类的拉普拉斯平滑
  13. dw cs 5 安装失败解决方案
  14. backbond Model实现
  15. ArcGis 拓扑检查——狭长角锐角代码C#
  16. access汇总含义_access的用法总结大全
  17. the OCD JTAG adapter was detected ,but there is...
  18. opencv-图像处理1 图像基本操作
  19. RL 实践(3)—— 悬崖漫步【QLearning Sarsa 各种变体】
  20. html中js隐藏div的高度,javascript获取隐藏元素(display:none)的高度和宽度的方法

热门文章

  1. 20个月股票投资复盘:在被割韭菜中成长
  2. 基于SNMP的网络拓扑结构自动发现研究
  3. Tomcat8启动不了的问题
  4. 利用python写福字【支付宝五福活动大概率出敬业福】
  5. 小论文撰写中常用单词的N种说法
  6. 爬虫获取东方财富基金持仓情况
  7. 手柄映射键盘_如何使用运动加加TAP手柄在PC上玩手游
  8. 0321 复利计算—贷款
  9. gardner环 matlab,【matlab编程代做】位同步Gardner环的研究
  10. 利用Grapher Script 重复绘图