Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

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」を使っても問題ないのですが、衝突判定時にバグが起こる可能性があるということです。

これで終わります。


参考サイト
スマートフォンの加速度センサーを使う方法 - 如雨露の備忘録