Unity3D Android加速计和陀螺仪控制



我正在尝试在Android的Unity中实现加速度计/陀螺仪控制的游戏。

用户将手持手机横向标题为45度。根据他的倾斜,它将控制相机的俯仰。根据他的滚动,它将控制相机的偏航。

我一直在阅读加速度计和陀螺仪,但似乎不能理解如何应用它来满足我的需要。

要从加速度计控制你的相机,你应该使用低通滤波器,因为原始加速度计数据会有很多噪声,导致抖动的运动

public float AccelerometerUpdateInterval = 1.0f / 100.0f;
public float LowPassKernelWidthInSeconds = 0.001f;
public Vector3 lowPassValue = Vector3.zero;

Vector3 lowpass(){
        float LowPassFilterFactor = AccelerometerUpdateInterval / LowPassKernelWidthInSeconds; // tweakable
        lowPassValue = Vector3.Lerp(lowPassValue, Input.acceleration, LowPassFilterFactor);
        return lowPassValue;
    }

使用方法lowpass()代替Input。

最新更新