2016-11-05 5 views
0

私は幾分レースゲームを作っています。自動車は自動的に前進しますが、横向きにするために、私は電話の回転を測定します。私はx軸上の加速度を測定する必要があるので、私が使用:私はゲームをプレイするときティルト電話でのオフセット。 Accelerometer Bug

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

時々、ユニティでは、関数のグリッチを変換します。これは、ベクトルでの標準操作の使用を向上させるためです。加速度計の最小値をカットしてみてください:

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;