Javascript 如何在dat.gui中添加文件夹?

Javascript 如何在dat.gui中添加文件夹?,javascript,three.js,dat.gui,Javascript,Three.js,Dat.gui,我正在尝试为three.js项目中的lights添加文件夹,该项目是我从three.js示例复制的。但我不能让它工作。我想我应该使用f1=add.folder('light1'),然后用f1.add('intensity')等将参数添加到f1中。。。但是,当代码是这样构造的时候,如何做到这一点呢?node=f1.add()不起作用 function buildGui() { clearGui(); /******************

我正在尝试为three.js项目中的lights添加文件夹,该项目是我从three.js示例复制的。但我不能让它工作。我想我应该使用f1=add.folder('light1'),然后用f1.add('intensity')等将参数添加到f1中。。。但是,当代码是这样构造的时候,如何做到这一点呢?node=f1.add()不起作用

        function buildGui() {
            clearGui();         
 /****************************** Light1 **************************/ 
            var f1 = gui.addFolder('Light1');
            addGui( 'lightcolor', spotLight.color.getHex(), function( val ) {
                spotLight.color.setHex( val );
                render();
            }, true );

            addGui( 'intensity', spotLight.intensity, function( val ) {
                spotLight.intensity = val;
                render();
            }, false, 0, 2 );

 /************************** Light2 **************************/  
            var f2 = gui.addFolder('Light2');
            addGui( 'lightcolor 2', spotLight2.color.getHex(), function( val ) {
                spotLight2.color.setHex( val );
                render();
            }, true );

            addGui( 'intensity 2', spotLight2.intensity, function( val ) {
                spotLight2.intensity = val;
                render();
            }, false, 0, 2 );
        }

        function addGui( name, value, callback, isColor, min, max ) {
            var node;
            param[ name ] = value;

            if ( isColor ) {
                    node = gui.addColor( param, name ).onChange( function() {
                    callback( param[ name ] );
                } );
            } else if ( typeof value == 'object' ) {
                    node = gui.add( param, name, value ).onChange( function() {
                    callback( param[ name ] );
                } );
            } else {
                    node = gui.add( param, name, min, max ).onChange( function() {
                    callback( param[ name ] );
                } );
            }
            gui.remember(param);
            return node;
        }  
如果您将目标(即
gui
或文件夹)作为参数添加到addGui,它应该可以正常工作

大概是这样的:

function addGui(gui, name, value, callback, isColor, min, max ) {
  // ... stays the same
}

var f2 = gui.addFolder('Light2');
addGui(f2, 'lightcolor 2', /* ... */);