今天想把整个场景往下沉一点,想要照相机也跟着沉,于是设置了
camera.lookAt(new THREE.Vector3(0, -1000, 0));
结果发现视角并没有发生改变,在网上查了一下发现是与three.js的OrbitControls控件有关系,
在OrbitControls
的源代码中可以看到,camera
的lookAt
对象被更改了:
THREE.OrbitControls = function ( object, domElement ) {
...
// "target" sets the location of focus, where the object orbits around
this.target = new THREE.Vector3();
...
var scope = this;
...
scope.object.lookAt( scope.target );
...
};
由于target
为new THREE.Vector3()
,而不是camera
的lookAt
的向量,不管怎么设置camera
的lookAt
函数都没有用。
因此需要设置OrbitControls.target
为目标向量,比如
controls.target = new THREE.Vector3(0,-1000,0);
现在就可以看到视角更新为你想要的视角啦。