unity3d 读取加速度传感器(高级)
示例
直接使用来自加速度传感器的原始值来移动或旋转GameObject可能会导致诸如抖动或振动之类的问题。建议在使用前先平滑这些值。实际上,在使用之前,应始终将加速度传感器的值进行平滑处理。这可以通过一个低通滤波器来完成Vector3.Lerp。
//该值越低,该值越平滑,并且更新Accel越快。30似乎很好
const float updateSpeed = 30.0f;
float AccelerometerUpdateInterval = 1.0f / updateSpeed;
float LowPassKernelWidthInSeconds = 1.0f;
float LowPassFilterFactor = 0;
Vector3 lowPassValue = Vector3.zero;
void Start()
{
//滤波加速度计
LowPassFilterFactor = AccelerometerUpdateInterval / LowPassKernelWidthInSeconds;
lowPassValue = Input.acceleration;
}
void Update()
{
//获取原始加速度计值(传入false以获得原始加速度计值)
Vector3 rawAccelValue = filterAccelValue(false);
Debug.Log("RAWX: " +rawAccelValue.x+ " Y: " +rawAccelValue.y+ " Z: " + rawAccelValue.z);
//获取平滑的加速度计值(传入true以获取滤波后的加速度计值)
Vector3 filteredAccelValue = filterAccelValue(true);
Debug.Log("过滤X: " +filteredAccelValue.x+ " Y: " +filteredAccelValue.y+ " Z: " + filteredAccelValue.z);
}
//滤波加速度计
Vector3 filterAccelValue(bool smooth)
{
if (smooth)
lowPassValue = Vector3.Lerp(lowPassValue, Input.acceleration, LowPassFilterFactor);
else
lowPassValue = Input.acceleration;
return lowPassValue;
}
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短