Javascript Oribt控件不工作,鼠标无法移动场景

Javascript Oribt控件不工作,鼠标无法移动场景,javascript,three.js,Javascript,Three.js,我一直在试图弄清楚这一点,但我不确定这是否与OrbitControls.js或我的代码有关。我只是想让轨道控制装置工作,但似乎什么也没动 我用过: controls = new THREE.OrbitControls(camera, scene); 当我使用renderer.domElement时,我将无法再看到我的场景,而不是renderer.domElement 如果有人有任何建议,我们将不胜感激 这是我的密码: <script src="libr

我一直在试图弄清楚这一点,但我不确定这是否与OrbitControls.js或我的代码有关。我只是想让轨道控制装置工作,但似乎什么也没动

我用过:

    controls = new THREE.OrbitControls(camera, scene);
当我使用renderer.domElement时,我将无法再看到我的场景,而不是renderer.domElement

如果有人有任何建议,我们将不胜感激

这是我的密码:


        <script src="libraries/three.min.js"></script>
        <script src="libraries/OrbitControls.js"></script>
        


        <script>


            let scene,camera,renderer, controls;

            function init(){

                scene = new THREE.Scene();
                scene.background = new THREE.Color( 0xdddddd );
//Camera Things

                        camera = new THREE.PerspectiveCamera( 75, window.innerWidth/  window.innerHeight, 0.1, 5000 );
                        camera.position.set(0,25,25);

//cube
                        var cubeGeometry = new THREE.BoxGeometry (10,10,10);
                        var cubeMaterial = new THREE.MeshBasicMaterial ({color: 0x1ec876});
                        cube = new THREE.Mesh (cubeGeometry, cubeMaterial);

                        cube.position.set (0, 0, 0);
                        scene.add (cube);

// controls
                    controls = new THREE.OrbitControls(camera, scene);

                    scene.add( new THREE.AxesHelper(500));

// Renderer
                    renderer = new THREE.WebGLRenderer();
                    renderer.setSize(window.innerWidth,window.innerHeight);
                    document.body.appendChild( renderer.domElement );
                    animate();
                    }

                function animate() {
                controls.update();
                renderer.render( scene, camera );
                requestAnimationFrame( animate );
                }

                init();


        </script>
    </body>


让场景、摄影机、渲染器、控件;
函数init(){
场景=新的三个。场景();
scene.background=新的三种颜色(0xDDDD);
//照相器材
摄像头=新的三个透视摄像头(75,window.innerWidth/window.innerHeight,0.15000);
摄像机位置设置(0,25,25);
//立方体
var立方计量法=新的三箱几何体(10,10,10);
var cubeMaterial=new THREE.MeshBasicMaterial({color:0x1ec876});
立方体=新的三网格(立方计量法、立方材料);
cube.position.set(0,0,0);
scene.add(立方体);
//控制
控件=新的三个。轨道控件(摄影机、场景);
场景。添加(新的三个。AxeHelper(500));
//渲染器
renderer=new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
制作动画();
}
函数animate(){
控件更新();
渲染器。渲染(场景、摄影机);
请求动画帧(动画);
}
init();
谢谢

控件=新的三个。轨道控件(摄影机、场景)

您必须始终传入DOM元素作为第二个参数。不是3D对象或场景。因此正确的代码是:

controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
当然,这段代码需要在创建渲染器之后执行

控件=新的三个。轨道控件(摄影机、场景)

您必须始终传入DOM元素作为第二个参数。不是3D对象或场景。因此正确的代码是:

controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
当然,这段代码需要在创建渲染器之后执行