ドキュメント

Unity Engine

Unity Engine

Unity XR SDK

The XR SDK is no longer supported in Unity. Use OpenXR instead.
読み終わるまでの所要時間 5 分最終更新 1ヶ月前

Unity XR SDK は、Unity で動作する独自の XR プロバイダーを開発したいと考えている専門家ユーザーを対象としています。XR SDK をダウンロードするには、このページ から利用するためにサインアップする必要があります。
XR SDK パッケージを使うと、複数のバックエンド ("プロバイダー" と呼ばれる) が、単一のエンジン機能 ("サブシステム" と呼ばれる) を Unity に実装することが可能になります。ユーザーアプリケーションは、ランタイムにプロバイダーを選択し有効にすることができます。

サブシステム

サブシステムは以下から構成されています。
  • 開発者向けの C# インターフェース
  • ダイナミックライブラリーを通して複数のバックエンド (プロバイダー) を実装するネイティブインターフェース。
  • C# インターフェース、ネイティブインターフェース、およびエンジンの残りの部分との通信を処理する共通エンジンコード

サブシステムの図

サブシステム記述子

サブシステム記述子は、サブシステムをロードまたは初期化する前に検査するサブシステムに関するメタデータです。これはマニフェストファイルから来ており、C# インターフェースを通してアクセスできます。
Create
メソッドは、サブシステムをアクティベートして、そのインスタンスをユーザーのスクリプトに提供します。
詳細については、サブシステムのランタイム検索とアクティベーション のページを参照してください。

サブシステムのインスタンス

サブシステム記述子で
Create
が呼び出されると、サブシステムインスタンスが作成されます。スクリプトコードは、サブシステムと通信するためにこれらのインスタンスと相互作用します。サブシステム自体に独自のライフサイクルがあり、開始、停止、終了が可能です。

プロバイダー

プロバイダーは、サブシステムのネイティブな実装です。1 つのサブシステムが複数のプロバイダーを持つことができます。サブシステムの中には、一度に複数のプロバイダーをアクティブにできるものもありますが、相互に排他的なものもあります。

プロバイダーの図

プロバイダーは、Unity のネイティブプラグインインターフェース に準拠しており、その上にいくつかの追加のライフサイクルサポートが構築されています。エントリーポイントは
UnityPluginLoad
メソッドです。ここから先は、プロバイダーが実装しようとするすべてのサブシステムに登録する必要があります。
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_APIUnityPluginLoad(IUnityInterfaces* unityInterfaces){ s_XrDisplay = unityInterfaces->Get<IUnityXRDisplayInterface>(); UnityLifecycleProvider displayLifecycleHandler = { NULL, // This can be any object you want to be passed as userData to the following functions &Lifecycle_Initialize, &Lifecycle_Start, &Lifecycle_Stop, &Lifecycle_Shutdown }; s_XrDisplay->RegisterLifecycleProvider("Provider Plugin Name", "Display0", &displayLifecycleHandler); // Register with other subsystems...}