Version: 2021.1
言語: 日本語
VR フレームタイミング
XR プロバイダーの作成

Unity XR SDK

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_API
UnityPluginLoad(IUnityInterfaces* unityInterfaces)
{
    s_XrDisplay = unityInterfaces->Get<IUnityXRDisplayInterface>();
    UnityLifecycleProvider displayLifecycleHandler =
    {
        NULL, // これは、 userData として以下の関数に渡される任意のオブジェクトです
        &Lifecycle_Initialize,
        &Lifecycle_Start,
        &Lifecycle_Stop,
        &Lifecycle_Shutdown
    };
    s_XrDisplay->RegisterLifecycleProvider("Provider Plugin Name", "Display0", &displayLifecycleHandler);

    // 他のサブシステムに登録...
}
VR フレームタイミング
XR プロバイダーの作成
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961