需求:threejs使用鼠标操作控制器旋转模型后,要还原到初始位置
解决:
方案1、在模型加载完成后,备份相机位置和角度
重置时把备份的位置和角度信息赋值给当前相机。
结果:失败。位置信息可以赋值成功,角度赋值失败。原因:未知。
相关代码:
//备份位置和角度信息
that.cameraPositionX = camera.position.x;
that.cameraPositionY = camera.position.y;
that.cameraPositionZ = camera.position.z;
that.cameraRotation = camera.rotation.clone();
//还原位置和角度信息
camera.position.setX(this.cameraPositionX);
camera.position.setY(this.cameraPositionY);
camera.position.setZ(this.cameraPositionZ);
camera.rotation.set(this.cameraRotation.x,this.cameraRotation.y,this.cameraRotation.z);
方案2、使用controls的reset方法,结果:成功还原。相关代码:
//执行OrbitControls的reset方法
controls.reset();