具有固定相机位置的 R3F OrbitControls

R3F OrbitControls with fixed camera position

我将其用于 360 度图像,我需要相机固定在 (0,0,0)

如果我更新相机位置,控件将停止工作。

我看过这个 post https://codeworkshop.dev/blog/2020-04-03-adding-orbit-controls-to-react-three-fiber/ 有一个修复但似乎过时了,扩展功能没有使 orbitControls 可用。

我尝试了

的各种组合
  const onChange = () => {
    camera.position.set(0, 0, 0);
    ref.current.update();
  };

或者

  useEffect(() => {
    if (ref.current && scene.projection === SceneProjection['3603D']) {
      camera.position.set(0, 0, 0);
      ref.current.update();
    }
  }, [ref, scene]);

有没有一种简单的方法可以使用 OrbitControls 锁定相机位置并仅旋转相机?

我认为您可以将 controls.maxDistance 设置为非常小的值,例如 0.01。这样它只会绕原点旋转一个难以察觉的量。

您可以在文档中阅读有关 .maxDistance 属性的更多信息](https://threejs.org/docs/index.html?#examples/en/controls/OrbitControls.maxDistance)