Three.js设置相机lookAt无效
原因:代码中使用了OrbitControls轨道控件来控制相机,这个目标默认为THREE.Vector3(),也就是(0, 0, 0)世界坐标的原点。使用camera.lookAt会无效。
源代码片段:
typescript
//创建相机
const camera = new THREE.PerspectiveCamera(
80, //视角
widthofelement / heightofelement, //宽高比
0.1, //近距离
1000 //远距离
)
//相机位置,z轴为朝向自己的方向,y轴为垂直方向
camera.position.set(-7, 13, -7)
// 设置相机朝向的位置
camera.lookAt(100, 0, 100) // <----!!!此处无效!!!
const controls = new OrbitControls(camera, renderer.domElement);
//渲染函数
function animate() {
controls.update()
//调用animate
requestAnimationFrame(animate) //异步函数
//渲染
renderer.render(scene, camera)
}
animate()
解决方法:
将camera.lookAt(100, 0, 100)
改为:
typescript
controls.target = new THREE.Vector3(100, 0, 100)
这篇博文写的很详细: