Unity3D Android加速度计和陀螺仪控件

Ter*_*Lam 5 android accelerometer unity-game-engine gyroscope

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

用户将持有标题为45度的手机景观.根据他的倾斜度,它将控制相机的音高.根据他的滚动,它将控制相机的偏航.

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

JRo*_*wan 6

要从加速度计控制您的相机,您应该使用低通滤波器,因为原始加速度计数据会产生很大的噪音,导致抖动

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;
    }
Run Code Online (Sandbox Code Playgroud)

使用方法lowpass()而不是Input.acceleration将在应用于相机旋转时使相机运动平稳,