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);
}