Three.js 设备方向控制:限制或禁用 XY 旋转

Three.js Device Orientation Controls: Limit or disable XY rotations

我正在使用 DeviceOrientationControls 附加和旋转 Three.js

中的对象

默认情况下,这些控件将在所有三个 XYZ 轴上旋转对象。

有什么方法可以禁用 X 轴和 Y 轴的旋转,使对象只响应 Z 轴的旋转吗?

希望已经足够清楚了,如果您需要示例,请告诉我。谢谢

对于任何感兴趣的人,我能够在不使用 Three DeviceOrientationControls 库的情况下实现这一点。

您可以只为 'deviceorientation' 添加事件侦听器并将伽马旋转输入对象旋转,如下所示:

window.addEventListener('deviceorientation', function(e) {
  var gammaRotation = e.gamma ? e.gamma * (Math.PI / 180) : 0;
  bottleGroup.rotation.y = gammaRotation;
});

您可以通过在 setObjectQuaternion( scope.object.quaternion, alpha, beta, gamma, orient ) 后面添加以下行来替换 DeviceOrientationControls js;在 this.update 函数中:

this.object.rotation.x = 0;
this.object.rotation.z = 0;

然后你只在 y 方向上有相机运动。