UnityのInput.gyro.attitudeとInput.accelerationを使ってARをやる際の備忘録
前提:ジャイロセンサによってスマートフォンとカメラを同期、その上で加速度の方向をUnity内部と現実世界で合わせる
1 2 3 4 5 6 7 8 9 10 11 | <br /> void Update()<br /> {<br /> Quaternion orient = Input.gyro.attitude;<br /> orient.x *= -1;<br /> orient.y *= -1;<br /> Quaternion sub = Quaternion.Euler(90, 0, 0);<br /> transform.rotation = sub * orient;</p> <p> Vector3 accelVecCam = new Vector3( Input.acceleration.x, Input.acceleration.y, -Input.acceleration.z);<br /> transform.GetChild(0).localPosition = accelVecCam*20; //確認用. 適当なGameObjectをカメラの子にする<br /> }<br /> |
accelVecCamはカメラ座標系での加速度ベクトルであることに注意.
World座標にしたいときはtransform.TransformVectorで変換すること.
Input.gyro.attitudeのほう
参考元:http://vr-cto.hateblo.jp/entry/2016/05/02/070000
参考元の参考元:http://qiita.com/fuqunaga/items/b1a3e38af71f062f0781
Input.accelerationのほう
参考元:https://developer.android.com/reference/android/hardware/SensorEvent.html