2014-12-07 189 views
1

我试图移动一个游戏对象时,我提高/降低(摇)我的手机,但我不知道如何得到设备的运动。我已经知道Input.acceleration,但这只是给我设备旋转,我希望它是实际的运动。Unity设备移动

这是可能的,我将如何去做呢?

+0

你只能用加速度计测量手机加速度的变化,或者用陀螺仪测量手机的旋转变化,但这几乎就是这样。您可以使用数学运算来计算其他值,例如通过将加速度计和陀螺仪的数据组合到一个称为传感器融合的过程中,从而计算出其他值,但仍然无法为您带来手机移动的任何意义。 – 2014-12-07 20:01:59

+0

我不明白的是为什么Input.acceleration给了我旋转不应该给我的运动? – gumba 2014-12-07 20:04:59

+0

它给你*加速*而不是旋转。它告诉你3个轴中每一个都有多大的重力。 – stromdotcom 2014-12-07 20:13:30

回答

0

加速度计读取总和:变化运动(加速度)+恒定的重力。可以以两种方式使用它的定向运动:

  1. 检测重力角度的变化 - 当所述设备不移动(或以恒定速度移动时),并平行于地面时,加速计将读取地球的重力,即:new Vector3(0,-9.81,0)。当设备倾斜时(不平行于地面),矢量的长度仍然是9.81,但它会旋转一点。 new Vector3(3.03, -9.32, 0)(这个例子是一个轴旋转56度(π/ 10))。使用这将产生这种控制:https://www.youtube.com/watch?v=3EU3ip4k0uE

  2. 检测加速度的峰值。当设备静止或以恒定速度移动时,加速度矢量的长度将等于9.81,当它改变/开始移动时,该数字将改变。您可以检测到这些变化,并将其解释为一次瞬间移动(如按箭头)。


有没有使用accelometer,替代方案,例如,你可以检测到一些印刷标记与Vuforia:https://www.youtube.com/watch?v=8RnlBEU5tkI - 解读一simmilar时尚的标志物和行动的相对位置,你会发现#1加速度变化。