2016-11-05 108 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;