Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置控件的第一个注视/目标_Javascript_Three.js - Fatal编程技术网

Javascript 如何设置控件的第一个注视/目标

Javascript 如何设置控件的第一个注视/目标,javascript,three.js,Javascript,Three.js,我需要设置场景的初始“注视”点,即屏幕和控件旋转的中心。 如果可能,我更喜欢设置点(或对象的位置),而不是旋转角度 控件是轨道控件。如果我只是在控件初始化之前设置lookAt,那么在第一次用户交互时,中心将恢复为(0,0,0),这会导致“间隙” // camera camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 0.1, 20000); camera.position.set(0,

我需要设置场景的初始“注视”点,即屏幕和控件旋转的中心。 如果可能,我更喜欢设置点(或对象的位置),而不是旋转角度

控件是轨道控件。如果我只是在控件初始化之前设置lookAt,那么在第一次用户交互时,中心将恢复为(0,0,0),这会导致“间隙”

// camera
camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 0.1, 20000);
camera.position.set(0,20,20);
camera.lookAt(new THREE.Vector3(0,10,0));

// controls
controls = new THREE.OrbitControls( camera );
controls.addEventListener( 'change', render );

如何以正确的方式设置初始点?

尝试设置控件的目标并删除camera.lookAt调用,即controls.target=new THREE.Vector3(0,10,0)

或更直接地:controls.target.set(0,10,0)

太好了!我没有意识到用这个可以做到,效果很好。。非常感谢…然后调用
controls.update()以获得正确的第一帧。当您转到不同的全景然后返回到新的全景时,这似乎不起作用,似乎被忽略。有什么想法吗?