MRが楽しい

MRやVRについて学習したことを書き残す

Questアプリでジャイロセンサの値を取得……できなかった

本日はMetaQuest3の小ネタ枠です。
Questアプリでジャイロセンサの値を取得しようとして失敗したのでその記録記事です。

ジャイロセンサの情報を取得する

Unityでデバイスのジャイロセンサの情報を取得すには Input.gyro を参照します。
docs.unity3d.com
docs.unity3d.com

Input.gyro.enabled = true;
Vector3 gyro = Input.gyro.rotationRateUnbiased;

サンプルプロジェクト

Input からジャイロセンサの方向と加速度を取得してテキストメッセージに表示する以下のサンプルスクリプトを作成しました。
・SensorChecker.cs

using TMPro;
using UnityEngine;

public class SensorChecker : MonoBehaviour
{
    [SerializeField]
    private TMP_Text _resultText;
    
    void Start()
    {
        Input.gyro.enabled = true;
    }

    private void Update()
    {
        Vector3 angle = Vector3.zero;
        angle.x = Mathf.Asin(Mathf.Clamp(Input.acceleration.x, -1, 1)) * Mathf.Rad2Deg;
        angle.y = Mathf.Asin(Mathf.Clamp(Input.acceleration.y, -1, 1)) * Mathf.Rad2Deg;
        angle.z = Mathf.Asin(Mathf.Clamp(Input.acceleration.z, -1, 1)) * Mathf.Rad2Deg;
        Vector3 accel = Input.acceleration;
        Vector3 accelAngle = angle;
        Vector3 gyro = Input.gyro.rotationRateUnbiased * Mathf.Rad2Deg;
        Quaternion gyroAttitude = Input.gyro.attitude;
        
        _resultText.text = $"GyroEnabled: {Input.gyro.enabled}\nAccel: {accel}\nAccelAngle: {accelAngle}\nGyro: {gyro}\nGyroAttitude: {gyroAttitude}";
    }
}

以下の記事で作成したUnityプロジェクトを基にサンプルスクリプトを設定しました。
bluebirdofoz.hatenablog.com

動作確認

本プロジェクトをQuest3にデプロイして動作を確認しました。
結果は以下の通りQuest3上ではジャイロセンサの情報をInputから取得することはできませんでした。

参考ページ

qiita.com