2

我今晚来找你是因为我对 three.js 有疑问。我正在做一个教程,但最后,我无法在列表中选择形状或网格,尽管我设置了视频中所示的控件(在此处)这是我们正在谈论的一段代码关于 :

shapeFolder.add(guiControls, 'form', {'Box' : 0, 'Cylinder':1, 'Dodecahedron' : 2, 'Icosahedron' :3, 'Octahedron': 4, 'Sphere': 5, 'Ring': 6, 'Torus':7, 'TorusKnot': 8}).onChange(function(value){
            if(value == 0 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[0], materials[0]);
                scene.add(shape);
            }
            else if(value == 0 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[0], materials[1]);
                scene.add(mesh);
            }
            else if(value == 1 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[1], materials[0]);
                scene.add(shape);
            }
            else if(value == 1 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[1], materials[1]);
                scene.add(mesh);
            }
            else if(value == 2 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[2], materials[0]);
                scene.add(shape);
            }
            else if(value == 2 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[2], materials[1]);
                scene.add(mesh);
            }
            else if(value == 3 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[3], materials[0]);
                scene.add(shape);
            }
            else if(value == 3 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[3], materials[1]);
                scene.add(mesh);
            }
            else if(value == 4 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[4], materials[0]);
                scene.add(shape);
            }
            else if(value == 4 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[4], materials[1]);
                scene.add(mesh);
            }
            else if(value == 5 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[5], materials[0]);
                scene.add(shape);
            }
            else if(value == 5 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[5], materials[1]);
                scene.add(mesh);
            }
            else if(value == 6 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[6], materials[0]);
                scene.add(shape);
            }
            else if(value == 6 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[6], materials[1]);
                scene.add(mesh);
            }
            else if(value == 7 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[7], materials[0]);
                scene.add(shape);
            }
            else if(value == 7 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[7], materials[1]);
                scene.add(mesh);
            }
            else if(value == 8 && guiControls.lineshape == true){
                scene.remove(shape);
                scene.remove(mesh);
                shape = new THREE.Mesh(genGeometry[8], materials[0]);
                scene.add(shape);
            }
            else if(value == 8 && guiControls.lineshape == false){
                scene.remove(shape);
                scene.remove(mesh);
                mesh = new THREE.Mesh(genGeometry[8], materials[1]);
                scene.add(mesh);
            }
        });

其余的一切都很好,但只是那个控制把这一切搞砸了。

大家有没有看出哪里不对劲?

谢谢。

4

0 回答 0