プラットフォーム機能の検出 — MRTK2

MRTK に関してよく寄せられる質問は、アプリケーションの実行に使用されている特定のデバイス (Microsoft HoloLens 2 など) を把握することです。 プラットフォームによっては、正確なハードウェアの特定が難しい可能性があります。 MRTK ではその代わりに、特定の機能 (たとえば、現在のデバイス エンドポイントで多関節ハンドがサポートされているかどうか) を実行時に特定する方法を提供しています。

機能

Mixed Reality Toolkit には、アプリケーションで実行時にクエリできる一連の機能を定義する MixedRealityCapability 列挙型が用意されています。

入力システムの機能

既定の MRTK 入力システムでは、次の機能のクエリがサポートされています。

機能 説明
ArticulatedHand 多関節ハンド入力
EyeTracking 視線入力のターゲット設定
GGVHand Gaze-Gesture-Voice 手入力
MotionController モーション コントローラー入力
VoiceCommand アプリ定義のキーワードを使用した音声コマンド
VoiceDictation 音声からテキストへのディクテーション

次のコード例では、入力システムで、多関節ハンドのサポート付きでデータ プロバイダーが読み込まれているかどうかを確認します。

bool supportsArticulatedHands = false;

IMixedRealityCapabilityCheck capabilityCheck = CoreServices.InputSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
    supportsArticulatedHands = capabilityCheck.CheckCapability(MixedRealityCapability.ArticulatedHand);
}

空間認識機能

既定の MRTK 空間認識システムでは、次の機能のクエリがサポートされています。

機能 説明
SpatialAwarenessMesh 空間メッシュ
SpatialAwarenessPlane 空間平面
SpatialAwarenessPoint 空間点

この例では、空間認識システムで、空間メッシュのサポート付きでデータ プロバイダーが読み込まれているかどうかを確認します。

bool supportsSpatialMesh = false;

IMixedRealityCapabilityCheck capabilityCheck = CoreServices.SpatialAwarenessSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
    supportsSpatialMesh = capabilityCheck.CheckCapability(MixedRealityCapability.SpatialAwarenessMesh);
}

関連項目