Détection des fonctionnalités de plateforme — MRTK2

Une question courante de MRTK implique de savoir quel appareil spécifique (par exemple, Microsoft HoloLens 2) est utilisé pour exécuter une application. L’identification du matériel exact peut être difficile sur différentes plateformes. Au lieu de cela, le MRTK permet d’identifier des fonctionnalités spécifiques au moment de l’exécution (par exemple, si le point de terminaison de l’appareil actuel prend en charge les mains articulées).

Fonctionnalités

Le kit de ressources Mixed Reality fournit l’énumérationMixedRealityCapability, qui définit un ensemble de fonctionnalités pour lesquelles une application peut interroger au moment de l’exécution.

Fonctionnalités du système d’entrée

Le système d’entrée MRTK par défaut prend en charge l’interrogation des fonctionnalités suivantes :

Fonctionnalité Description
ArticulatedHand Entrée de main articulée
Suivi oculaire Ciblage du regard
GGVHand Entrée de main gaze-geste-voix
MotionController Entrée du contrôleur de mouvement
VoiceCommand Commandes vocales à l’aide de mots clés définis par l’application
VoiceDictation Dictée de voix en texte

L’exemple de code ci-dessous vérifie si le système d’entrée a chargé un fournisseur de données avec prise en charge des mains articulées.

bool supportsArticulatedHands = false;

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

Fonctionnalités de reconnaissance spatiale

Le système MRTK Spatial Awareness par défaut prend en charge l’interrogation des fonctionnalités suivantes :

Fonctionnalité Description
SpatialAwarenessMesh Maillages spatiaux
SpatialAwarenessPlane Plans spatiaux
SpatialAwarenessPoint Points spatiaux

Cet exemple vérifie si le système de reconnaissance spatiale a chargé un fournisseur de données avec prise en charge des maillages spatiaux.

bool supportsSpatialMesh = false;

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

Voir aussi