threejs 实现点击复位功能

424 阅读1分钟
需求是初始化加载完成顺时针自动旋转,用户进行缩放或者旋转控制后停止自动旋转,点击复位后回到初始状态并且自动旋转

1、创建一个控制器

const controls = new OrbitControls()

2、设置初始自动旋转(默认逆时针旋转)

controls.autoRotate = true;

3、设置顺时针旋转 autoRotateSpeed设置为负值(默认是2),例如

controls.autoRotateSpeed = -2;

4、实现点击复位回到初始状态 点击事件如下:

const resetModel = () => {
  controls.reset();
  controls.autoRotate = true;
}

5、实现用户操作后停止自动旋转,没有直接能够监听用户操作的API,但可以通过监听start/end实现,如下

    controls.addEventListener('end'/'start', () => {
      controls.autoRotate = false;
    });

建议使用end