0

我正在使用 JavaScript 进行编码并使用 Three.js 进行我的第一步。

在我的代码中,我做了这个函数:

    var loader = new THREE.BinaryLoader();
    loader.load( "sources/obj/mmlogo/mm_logo.js", function ( geometry ) {

        uniforms = {
            color: {
            type: "c",
            value: new THREE.Color(0x000000),
            },
            envMap: {
            type: "t",
            value: reflectionCube
            },
            fresnelBias: {
            type: "f",
            value: 0.1
            },
            fresnelScale: {
            type: "f",
            value: 1.0
            },
            fresnelPower: {
            type: 'f',
            value: 2.0
            }
        };

        material = new THREE.ShaderMaterial( {

            uniforms : uniforms,
            vertexShader : vertexShader,
            fragmentShader : fragmentShader,
            wireframe: false,
            side: THREE.DoubleSide,

        });

        monogram = new THREE.Mesh( geometry, material );
        monogram.scale.set( 1, 1, 1 );
        monogram.position.z = -9;
        scene.add( monogram );

    });

然后我做了这个渲染函数:

    function render() {

        frame += 0.1/3;
        monogram.scale.z += Math.sin(frame)/600;

        TWEEN.update();

        targetX = mouseX * .0005;
        targetY = mouseY * .0005;


        if ( monogram ) {

        monogram.rotation.y += 0.05 * ( targetX - monogram.rotation.y );
        monogram.rotation.x += 0.05 * ( targetY - monogram.rotation.x );

        }

        renderer.render( scene, camera );

    }

我可以看到一切,一切正常。但是我的控制台说有一个错误:Uncaught ReferenceError: monogram is not defined。

我认为我必须制作一个全球范围的字母组合。所以我在字母组合之前写了var,它不起作用,然后我写了

monogram = new THREE.Mesh( geometry, material );
            monogram.scale.set( 1, 1, 1 );
            monogram.position.z = -9;
            scene.add( monogram );

在我的功能之外,它不起作用。

你有什么建议吗?我的应用程序可以工作,即使控制台说没有错误,我认为如果我的控制台说一切正常,那会更好。

4

0 回答 0