夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

iphoneでARカメラの向きをスクリプトから変更する

本日はApple枠です。

先日は ARKitの機能を使用して顔を検知しました。

redhologerbera.hatenablog.com

この際にiPhoneに表示されるカメラの向きはインカメラ(スクリーン側)を使用していましたが、今回は動的にスクリプトでアウトカメラに切り替える方法を紹介します。

〇環境

基本的には先日と同じです。こちらの記事を参考にしてください。

redhologerbera.hatenablog.com

スクリプト

今回はこちらのスクリプトを書きました。

UIなどからToggleCamera()メソッドを呼んで使用します。

using UnityEngine;
using UnityEngine.XR.ARFoundation;

public class CameraFacingDirectionController : MonoBehaviour
{
private ARCameraManager arCameraManager;

    void Start()
    {
        // ARCameraManagerを取得
        arCameraManager = FindObjectOfType<ARCameraManager>();

        if (arCameraManager != null)
        {
            // 初期はインカメラを有効にする
            arCameraManager.requestedFacingDirection = CameraFacingDirection.User;
        }
    }

     public void ToggleCamera()
    {
        if (arCameraManager != null)
        {
            // カメラの向きを切り替える
            if (arCameraManager.requestedFacingDirection == CameraFacingDirection.User)
            {
                arCameraManager.requestedFacingDirection = CameraFacingDirection.World;
            }
            else
            {
                arCameraManager.requestedFacingDirection = CameraFacingDirection.User;
            }
        }
    }
}

ARカメラの情報はUnityEngine.XR.ARFoundationのネームスペースを使用できます。

arCameraManager.requestedFacingDirection=CameraFacingDirection.World

この処理によってWorld(外カメラ)およびUser(内側カメラ)を切り替えています。

本日は以上です。