【Unity】Quaternionをヨー、ピッチ、ロールに変換する【ジャイロ】
ジャイロで受け取ったQuaternionからヨー、ピッチ、ロールへの変換式です
Unityに限らず意外と使うところあると思うんですけど、あんまりネット探しても載ってないんですよね
毎度計算式忘れるので自分への備忘録の意味も込めて
void Start () { //ジャイロフラグをオン if (SystemInfo.supportsGyroscope) { Input.gyro.enabled = true; } } void Update () { Quaternion gyro = Input.gyro.attitude; float yaw = Mathf.Atan2(2 * gyro.x * gyro.y + 2 * gyro.w * gyro.z, gyro.w * gyro.w + gyro.x * gyro.x - gyro.y * gyro.y - gyro.z * gyro.z); float pitch = Mathf.Asin (2 * gyro.w * gyro.y - 2 * gyro.x * gyro.z); float roll = Mathf.Atan2 (2 * gyro.y * gyro.z + 2 * gyro.w * gyro.x, -gyro.w * gyro.w + gyro.x * gyro.x + gyro.y * gyro.y - gyro.z * gyro.z); }
Unityの回転は鬼門だと思う