Détection des fonctionnalités de la plateforme — MRTK2
Une question courante de MRTK consiste à 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ération MixedRealityCapability
, 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 manuelle articulée |
EyeTracking | Ciblage du regard |
GGVHand | Entrée de la main Du regard-Mouvement-Voix |
MotionController | Entrée du contrôleur de mouvement |
VoiceCommand | Commandes vocales utilisant des 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 de reconnaissance spatiale MRTK 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 prenant en charge les maillages spatiaux.
bool supportsSpatialMesh = false;
IMixedRealityCapabilityCheck capabilityCheck = CoreServices.SpatialAwarenessSystem as IMixedRealityCapabilityCheck;
if (capabilityCheck != null)
{
supportsSpatialMesh = capabilityCheck.CheckCapability(MixedRealityCapability.SpatialAwarenessMesh);
}