2016-11-05 110 views
0

我正在做一个有点赛车的游戏。汽车自动向前移动,但是为了将其侧向转动,我测量了手机的旋转。因为我必须测量在x轴的加速度,我使用:倾斜手机。加速度计错误

Direction.x = Input.acceleration.x * Time.deltaTime; 
Transform.translate (Direction.x * 5f); 

当我玩游戏,赛车旋转我怎么想,当我倾斜手机上的x轴。然而,问题出在我把手机放在桌子上时,汽车的行驶速度超慢,这是没有意义的,因为它处于0度角。为了确保这不是因为桌面,我在Unity Simultator中播放了它,发生了同样的事情。汽车行驶速度超慢。当我debug.log时,它表示Direction.x大约是-0.000147 ...,一个超级小数字。有没有办法解决这个问题,以便在手机静止时,汽车的Direction.X将为0,或者代码有问题。

回答

0

有时在Unity翻译功能故障,因为更好地使用与矢量的标准操作。试着削减加速度计的最小值:

float min_value = 0.01f 

if(Mathf.Abs(Input.acceleration.x) < min_value) 
    Direction.x = Input.acceleration.x * Time.deltaTime; 
else 
    Direction.x = 0; 

transform.position = transform.position + Direction.x * 5f;