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

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

機能

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

入力システムの機能

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

機能 説明
ArticulatedHand 手による入力
EyeTracking 目を見つめたターゲット
GGVHand 宝石-ジェスチャ-音声入力
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);
}

こちらもご覧ください