我正在为android开发一个统一应用程序,需要在加速度计的帮助下测量设备运动。问题是这些值包含重力。有人说为了消除重力,我必须将加速度转换为全局加速度然后只是从Z轴上移除重力,但我不知道该怎么做?这样做有什么特殊的统一功能吗?
由于
答案 0 :(得分:0)
Unity论坛上的这个帖子清理了一切:
正如Unity Technologies的“inkredibl”所说:
在Unity
Gyroscope.rotationRate
中是真正的陀螺仪数据 该类的其他属性使用其他传感器(如果可用) 提出对现实设备运动的更好估计。Gyroscope.gravity
和Gyroscope.userAcceleration
与您有关 加速度计,但在其他传感器的帮助下,它们具有重力 与设备加速分离,使其更容易 开发人员使用(但这又是一个估计,他们不是 完美,只够接近。)
所以Gyroscope.userAcceleration
就是这个问题的答案。
Input.acceleration是加速度计数据,用它来测量 g的倍数(Eearth的引力),这就是为什么它的大小为1时 设备未被移动。尝试在设备登录时进行记录 在空中抛出它应该接近于零(这是因为 该设备在那一刻处于自由落体状态)。 Compass.rawVector是 磁力计数据和该类的所有其他属性 使用各种传感器而不仅仅是磁力计。