Dat.GUI:几个问题

时间:2018-02-28 10:35:28

标签: class three.js dat.gui

我在THREE.js制作了一个小型台球游戏,并选择使用Dat.Gui作为GUI库。关于后者,我有一些小问题:

  • 第一个问题:我可以创建一个返回GUI的类吗?

目前我有一个mygui.js文件,其中我放了gui的代码(示例代码[1],让我们说),然后我在mygame.html中包含它.js文件。但是,所有其他对象(桌子,球,灯等)都是类,我也想用GUI做到这一点。当我将所有内容放在

中时
class MyGUI {
    constructor() {
        //javascript part of the example here
        return gui;
    }
}

然后调用main.js

var mygui = new MyGUI();
GUI不会显示,但是当我不在main.js中包含类和行时,它可以正常工作。我已下载 dat.gui.min.js 并将其包含在html中。

  • 第二个问题:我想根据我调用gui的更改函数来改变变量,但是如果没有类(如果不起作用)我将如何进行更改?

  • 第三个问题:我想使用GUI,只显示值。用户不应该改变它。我可以将GUI设为只读吗? (要明确的是:更改GUI中的值不会改变游戏玩法,它们只是游戏状态的文本表示)

  • 第四个问题:我想删除GUI的顶部(您可以在其中加载/保存预设或其他内容)。我该怎么做?

1 个答案:

答案 0 :(得分:0)

渐进式见解:

  1. 由@ prisoner849:示例/教程的Page 9链接。 gui.add(param, 'theSetting').listen(); function updateTheSetting(newVal){ param.theSetting = newVal; }

  2. param.theSetting更新,添加的参数listen()时,param.theSetting中的更改将自动更新GUI。

    1. 不要使用gui.remember( someParameters ),保存部分将消失。