首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dat.gui滑块触发动态观察控件

使用dat.gui滑块触发动态观察控件
EN

Stack Overflow用户
提问于 2017-09-08 05:01:58
回答 3查看 845关注 0票数 2

我正在建立一个折纸模拟器,我想能够‘折叠’的论文使用dat.gui滑块。我还想包括轨道控制。

但是,当我单击滑块并随后将鼠标移出dat.gui窗口时,轨道控制已被触发,导致模型跳到不同的方向。

有没有办法防止我在dat.gui窗口中点击时触发轨道控制?

EN

回答 3

Stack Overflow用户

发布于 2018-05-04 16:58:55

引用the docs

构造函数OrbitControls( object: Camera,domElement : HTMLDOMElement ) object:(必选)需要控制的摄像头。

domElement:(可选)用于事件侦听器的HTML元素。默认情况下,这是整个文档,但是如果你只想让控件处理特定的元素(例如画布),你可以在这里指定。

换句话说,要限制画布,使它们在单击图形用户界面时不会启用,必须将对画布(renderer.domElement)或容器(包含画布的div )的引用作为第二个参数提供给构造函数。祝你编码愉快!(还有折叠!)

票数 1
EN

Stack Overflow用户

发布于 2020-11-24 01:33:09

我对您的问题的解决方案是:让dat.GUI“侦听”由OrbitControls (摄影机)控制的值,以便这些值在两个不同的“控制器”(OrderbitControls和dat.GUI)之间同步,如下所示:

代码语言:javascript
复制
let gui = new dat.GUI();
let folder1 = gui.addFolder("Camera Position");
folder1.add(camera.position, "x", -100, 100).listen();
folder1.add(camera.position, "y", -100, 100).listen();
folder1.add(camera.position, "z", -100, 100).listen();

dat.GUI中被跟踪变量上的listen()函数将使这些值保持同步,并缓解您所经历的“跳跃性”。

参考dat.GUI控制器函数文档:dat.gui

票数 1
EN

Stack Overflow用户

发布于 2017-10-03 03:30:13

OrbitControls有一个"enabled“属性(事实上,我相信所有的控件都有一个"enabled”属性--可能需要检查一下)。所以如果你有

orbitControls =新的THREE.OrbitControls(...);

..。

//在您的dat.GUI代码块中(或您想要禁用orbitControls的任何位置)

orbitControls.enabled = false;

//这会禁用orbitControls,当您想再次使用orbitControls时,只需这样做

orbitControls.enabled =真;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46105033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档