关于controls控制器右键拖拽相机动画失去原点坐标的问题
const controls = new OrbitControls(camera, renderer.domElement)
if (v == '默认' || v == '墨右键双击退出') {
gsap.to(camera.position, {
x: 0,
y: 200,
z: 400,
duration: 1,
onStart: () => {
controls.reset()
},
onUpdate: () => {
camera.lookAt(model.position);
},
})
}
controls.update(); 会影响相机指向的问题!
原因:const controls = new OrbitControls(camera, renderer.domElement) 使用了camera 指向模型原点
暂无好的办法
controls.addEventListener('change', () => {
timeRender()
store.contrCamerbol = true;
console.log('change', '处理鼠标事件',);
})
若函数中使用了controls.reset()重置相机 store.contrCamerbol = true; 需写在后面执行、因为会触发addEventListener('change')
camera.lookAt(0, 0, 0)
.onUpdate(function (obj) {
camera.position.set(obj.x, obj.y, obj.z);
controls.target.set(obj.tx, obj.ty, obj.tz);
controls.update();
})
onUpdate: () => {
camera.lookAt(fireLv3_pos)
controls.target.set(fireLv3_pos.x,fireLv3_pos.y,fireLv3_pos.z);
controls.update();
},