Unity スマートフォンの加速度センサーを使う
今回は、Unityで「スマートフォンの加速度センサーを使う」方法を書きます。
スマートフォンを傾けると、オブジェクトが移動するようにしたい時がありました。
そこで、スマートフォンの加速度センサーを取得するには、どうすればいいか調べました。
こんな感じのコードをScriptに書けば、加速度センサーを取得できて、オブジェクトを移動させられました。
・Javascript
//速度調整用の変数 var speed : float = 0.1; function Update () { var dir : Vector3 = transform.position; //スマートフォンのX軸,Y軸を取得する dir.x += Input.acceleration.x * speed; dir.z += Input.acceleration.y * speed; //オブジェクトを移動 rigidbody.MovePosition(dir); }
上のコードで重要な所は、ここです。
dir.x += Input.acceleration.x * speed; dir.z += Input.acceleration.y * speed;
「Input.acceleration.x 」と「Input.acceleration.y」でスマートフォンのX軸,Y軸を取得しています。ちなみに「Input.acceleration.z」もあります。こちらは、Z軸を取得できます。
あと、「rigidbody.MovePosition」だと、衝突判定する時にバグが起こりにくいようです。
「transform.Translate」を使っても問題ないのですが、衝突判定時にバグが起こる可能性があるということです。
これで終わります。