MRTK モジュール化 — MRTK2

Mixed Reality ツールキット v2 の優れた新機能の 1 つに、コンポーネント化の強化があります。 可能な限り、個別のコンポーネントは、基盤のコア レイヤー以外のすべてから分離されています。

最小限の依存関係

MRTK v2 は、モジュールとして、システム サービス間の依存関係 (例: 空間認識) を最小限に抑える目的で開発されました。

一部のシステム サービス (例: 入力とテレポート) の性質により、少数の依存関係が存在します。

サービスには 1 つ以上のデータ プロバイダー コンポーネントが必要であると予想されますが、これらの間に直接リンクはありません。 SDK の機能 (例: ユーザー インターフェイス コンポーネント) にも当てはまります。

コンポーネントの通信

コンポーネント間が直接リンクされないように、MRTK v2 では、インターフェイスを利用してサービス、データ プロバイダー、アプリケーション コード間の通信を行います。 これらのインターフェイスは Mixed Reality ツールキット コア コンポーネントで定義されており、すべての通信は Mixed Reality ツールキット コア コンポーネントを通じてルーティングされます。

Using the spatial awareness system via interfaces

MRTK のインポート フットプリントを最小限に抑える

現時点では、MRTK は単一の Foundation パッケージとしてインポートされます (完全なオプションのパッケージであるサンプル パッケージの存在はひとまず無視します)。 インポートされたファイルを手動で減らすことで、このフットプリントを小さくすることができます。ただし、これは高度な手動プロセスであり、明確に定義されたガイドはありません。

Foundation パッケージのインポート中に、任意の項目をオフにすることができます。 ただし、開発の初期段階では機能が損なわれる可能性があるため、これを行うことはお勧めしません。 アプリの最終的な機能セットを把握した後、不要なプロバイダーやサービスを排除するには、次のフォルダーを使用します。

  • MRTK/Services
  • MRTK/Providers
  • MRTK/SDK/Features

Note

MRTK v2.x には、Assets/MRTK/Core フォルダーの内容が "必要" です。

今後の機能

アプリケーションのアーキテクチャ

MRTK は、次のようなさまざまなアーキテクチャを使用してアプリケーションを構築できるようにサポートしています。

アプリケーション アーキテクチャを選択するときは、設計の柔軟性とアプリケーションのパフォーマンスを考慮することが重要です。 ここで説明するアーキテクチャは、すべてのアプリケーションに適しているとは限りません。

MixedRealityToolkit サービス ロケーター

MRTK を使用すると、アプリケーション シーンで既定の MixedRealityToolkit サービス ロケーター コンポーネントを使用できるようになります (かつ自動的に構成されます)。 このコンポーネントには、構成インスペクターを使用して MRTK システムとデータ プロバイダーを構成するためのサポートが含まれており、コンポーネントの有効期限とコア動作 (例: 更新するタイミング) が管理されます。

すべてのシステムは、プロジェクトに存在しているかどうか、または有効になっているかどうかに関係なく、コア構成インスペクターで表示されます。 詳細については、Mixed Reality 構成ガイドを参照してください。

個別のサービス コンポーネント

個別のサービス コンポーネントをアプリケーションのシーン階層に含めることを希望している開発者もいます。 この使用を有効にするには、サービスをカスタム レジストラーにカプセル化するか、自己登録/自己管理する必要があります。

アプリケーション コードがレジストリを使用してサービス インスタンスを検出できるように、自己登録サービスは IMixedRealityServiceRegistrar を実装し、それ自体を登録します。

セルフ管理サービスは、シーン階層内のシングルトン オブジェクトとして実装できます。 このオブジェクトでは、アプリケーション コードがサービス機能に直接アクセスするために使用できるインスタンス プロパティを提供しています。

カスタム サービス ロケーター

一部の開発者から、カスタム サービス ロケーター コンポーネントを作成する機能が要求されています。 カスタム サービス ロケーターでは、IMixedRealityServiceRegistrar インターフェイスを実装し、アクティブなサービスのライフ サイクルとコア動作を管理します。

ハイブリッド アーキテクチャ

MRTK では、開発者が必要に応じて以前のアプローチを組み合わせることができるハイブリッド アーキテクチャがサポートされます。 たとえば、開発者は MixedRealityToolkit サービス ロケーターから開始し、自己登録サービスを追加できます。

Note

ハイブリッド アーキテクチャを選ぶときは、作業の重複 (例: 複数のコンポーネントからコントローラー データを取得する) に注意することが重要です。