unity3d 读取加速度传感器(精度)

示例

仔细阅读加速度传感器。

本示例分配内存:

void Update()
{
    //获取精确的加速度计值 
    Vector3 accelValue = preciseAccelValue();
    Debug.Log("精确X: " +accelValue.x+ "  Y: " +accelValue.y+ "  Z: " + accelValue.z);

}

Vector3 preciseAccelValue()
{
    Vector3 accelResult = Vector3.zero;
    foreach (AccelerationEvent tempAccelEvent in Input.accelerationEvents)
    {
        accelResult = accelResult + (tempAccelEvent.acceleration * tempAccelEvent.deltaTime);
    }
    return accelResult;
}

这个例子确实没有分配内存:

void Update()
{
    //获取精确的加速度计值 
    Vector3 accelValue = preciseAccelValue();
    Debug.Log("精确X: " +accelValue.x+ "  Y: " +accelValue.y+ "  Z: " + accelValue.z);

}

Vector3 preciseAccelValue()
{
    Vector3 accelResult = Vector3.zero;
    for (int i = 0; i < Input.accelerationEventCount; ++i)
    {
        AccelerationEvent tempAccelEvent = Input.GetAccelerationEvent(i);
        accelResult = accelResult + (tempAccelEvent.acceleration * tempAccelEvent.deltaTime);
    }
    return accelResult;
}

请注意,这未过滤。请在此处查看如何平滑加速度计值以消除噪声。