use*_*365 19 javascript three.js dat.gui
我想用新值刷新dat.gui菜单.我已经加载了一个模型并在文件夹中显示gui文件夹中对象的名称.
如何在重新加载其他模型时显示新对象名称?
或者可以重置/清除gui.

Lee*_*ski 18
基本上,您必须在添加控制器时将控制器设置为"监听"输入,例如,
gui = new dat.GUI();
var guiX = gui.add( parameters, 'x' ).min(0).max(200).listen();
Run Code Online (Sandbox Code Playgroud)
有关文档,请参阅:
http://workshop.chromeexperiments.com/examples/gui/#9--Updating-the-Display-Automatically
有关Three.js中此示例,请参阅:
http://stemkoski.github.io/Three.js/GUI-Controller.html
jmm*_*mut 12
Echt Einfach的解决方案对我不起作用,Stemkoski的解决方案有点宽.我终于用它的updateDisplay功能:
for (var i in gui.__controllers) {
gui.__controllers[i].updateDisplay();
}
Run Code Online (Sandbox Code Playgroud)
http://workshop.chromeexperiments.com/examples/gui/#10--Updating-the-Display-Manually
请注意,如果您在某个文件夹中有值,folder1则调用如下所示:
for (var i = 0; i < this.gui.__folders.folder1.__controllers.length; i++) {
this.gui.__folders.folder1.controllers[i].updateDisplay();
}
Run Code Online (Sandbox Code Playgroud)
如果您不想硬编码folder1,或者只是想更新所有文件夹,可以按以下步骤操作:
for (var i = 0; i < Object.keys(gui.__folders).length; i++) {
var key = Object.keys(gui.__folders)[i];
for (var j = 0; j < gui.__folders[key].__controllers.length; j++ )
{
gui.__folders[key].__controllers[j].updateDisplay();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14252 次 |
| 最近记录: |