Unity中每个轴上的设备倾斜度数?

时间:2016-07-08 13:06:21

标签: android ios unity3d unity5 gyroscope

我正在开发一款可以决定你将控制哪个轴的游戏时,我正在解决这个问题。

我已经阅读并研究过如此多的关于四元数,陀螺仪,加速度计,卡尔曼和互补滤波器......但我仍然对这个问题感到迷茫:

这里的轴来自我的枚举,而不是陀螺轴。

以下代码为目前为止提供了最佳结果。 这里的问题是 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构建。 方向固定为横向左侧。

我需要的是一个能够返回指定轴当前倾斜角度的函数吗?

任何帮助将不胜感激

0 个答案:

没有答案