AR Session コンポーネント
ARSession コンポーネントは、ターゲットプラットフォームで AR (拡張現実) を有効または無効にすることにより、AR エクスペリエンスのライフサイクルを制御します。
AR Session コンポーネント
セッション とは、AR のインスタンスを指します。平面検出のようなその他の機能は単独で有効または無効にできますが、セッションはすべての AR 機能のライフサイクルを制御します。AR Session コンポーネントを無効にすると、システムがその環境内の機能を追跡しなくなります。その後に AR Session コンポーネントを有効にすると、システムは前に検出した機能の回復と維持を試みます。
Note
複数の AR Session コンポーネントが同じシーン内にあると、互いに競合する可能性があるので、Unity ではシーンに追加する AR Session コンポーネントを最大でも 1 つにすることをお勧めします。
デバイスサポートの確認
プラットフォームによっては、デバイスのオペレーティングシステムに AR 機能が組み込まれているものがあります。また、AR ソフトウェアをオンデマンドでインストールできるものもあれば、AR がまったくサポートされていないものもあります。AR がサポートされていない場合に代わりのエクスペリエンスを提供できるように、アプリケーションで AR Foundation のサポートを検出できるようにする必要があります。
"このデバイスでは AR を利用できるのか?" という疑問を解消するには、リモートサーバーでのソフトウェア可用性の確認が必要なので、CheckAvailability を呼び出して確認する必要があります。
public class MyComponent {
[SerializeField] ARSession m_Session;
IEnumerator Start() {
if ((ARSession.state == ARSessionState.None) ||
(ARSession.state == ARSessionState.CheckingAvailability))
{
yield return ARSession.CheckAvailability();
}
if (ARSession.state == ARSessionState.Unsupported)
{
// サポート対象外のデバイス向けに何らかのフォールバックエクスペリエンスを開始する
}
else
{
// AR セッションを開始する
m_Session.enabled = true;
}
}
}
Attempt Update を true に設定すると、デバイスで可能な場合に AR ソフトウェアのインストールを試みます。この機能のサポートはプラットフォームに依存します。
セッションのステート
セッションの現在のステート (例えば、デバイスがサポートされているか、AR ソフトウェアがインストールされているか、セッションが動作しているかなど) を判定するには、ARSession.state
を使用します。また、ARSession.stateChanged
イベントをサブスクライブすると、セッションのステートが変化したときにコールバックを受信することもできます。
ARSessionState |
説明 |
---|---|
None |
AR システムが初期化されていないため、可用性は不明です。 |
Unsupported |
現在のデバイスで AR はサポートされていません。 |
CheckingAvailability |
システムが現在のデバイスでの AR の可用性をチェックしています。 |
NeedsInstall |
現在のデバイスで AR はサポートされていますが、AR のサポートに追加のソフトウェアのインストールが必要です。 |
Installing |
AR ソフトウェアがインストールされています。 |
Ready |
AR がサポートされていて、いつでも利用できます。 |
SessionInitialized |
AR セッションが初期化されています (つまり開始されています)。通常は AR が動作していることを意味しますが、環境について十分な情報が収集されていません。 |
SessionTracking |
AR セッションが実行され、トラッキングを行っています (つまりデバイスがワールド内での位置と向きを特定できます)。 |
AR Input Manager
ARInputManager コンポーネントは、ワールドトラッキングを有効にします。デフォルトでは、ARInputManager コンポーネントは AR Session ゲームオブジェクトに含まれています。
Note
AR Input Manager コンポーネントがないと、XROrigin でデバイスのワールド空間ポーズを取得できません。AR を適切に機能させるためには、AR Input Manager コンポーネントが必要です。
AR Input Manager コンポーネント
AR Input Manager コンポーネントはシーン階層内のどこにでも移動できますが、1 つのシーンに複数加えることは避けてください。