我正在开发一款可以决定你将控制哪个轴的游戏时,我正在解决这个问题。
我已经阅读并研究过如此多的关于四元数,陀螺仪,加速度计,卡尔曼和互补滤波器......但我仍然对这个问题感到迷茫:
这里的轴来自我的枚举,而不是陀螺轴。
以下代码为目前为止提供了最佳结果。 这里的问题是 Y(向上/向下倾斜)或Z轴(纵向倾斜)不工作并且以某种方式混合,这取决于设备中的运行。
X轴(如方向盘)按预期工作。
private float GetCurrentTiltByAxis()
{
float ret = 0;
if (AccelerometerAxis == Axis.X)
{
ret = Input.gyro.attitude.eulerAngles.z;
}
else if (AccelerometerAxis == Axis.Y)
{
#if UNITY_ANDROID
ret = Input.gyro.attitude.eulerAngles.x;
#else
ret = Input.gyro.attitude.eulerAngles.y;
#endif
}
else if (AccelerometerAxis == Axis.Z)
{
#if UNITY_ANDROID
ret = Input.gyro.attitude.eulerAngles.y;
#else
ret = Input.gyro.attitude.eulerAngles.x;
#endif
}
return ret;
}
我使用最新的稳定统一并希望为iOS和Android构建。 方向固定为横向左侧。
我需要的是一个能够返回指定轴当前倾斜角度的函数吗?
任何帮助将不胜感激