Registre de services Mixed Reality — MRTK2

Le kit de ressources Mixed Reality comporte deux composants très nommés de la même façon qui effectuent des tâches connexes : MixedRealityServiceRegistry et IMixedRealityServiceRegistrar.

MixedRealityServiceRegistry

MixedRealityServiceRegistry est le composant qui contient des instances de chaque service inscrit (systèmes principaux et services d’extension).

Notes

MixedRealityServiceRegistry contient des instances d’objets qui implémentent l’interface IMixedRealityService , y compris IMixedRealityExtensionService.

Les objets implémentant IMixedRealityDataProvider (une sous-classe d’IMixedRealityService) ne sont pas inscrits explicitement dans MixedRealityServiceRegistry. Ces objets sont gérés par les services individuels (par exemple: Reconnaissance spatiale).

MixedRealityServiceRegistry est implémenté en tant que classe C# statique et est le modèle recommandé pour acquérir des instances de service dans le code de l’application.

L’extrait de code suivant illustre l’acquisition d’une instance IMixedRealityInputSystem.

IMixedRealityInputSystem inputSystem = null;

if (!MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
{
    // Failed to acquire the input system. It may not have been registered
}

IMixedRealityServiceRegistrar

IMixedRealityServiceRegistrar est l’interface qui définit les fonctionnalités implémentées par les composants qui gèrent l’inscription d’un ou plusieurs services. Les composants qui implémentent IMixedRealityServiceRegistrar sont chargés d’ajouter et de supprimer les données dans MixedRealityServiceRegistry. L’objet MixedRealityToolkit est un composant de ce type.

D’autres bureaux d’enregistrement sont disponibles dans le dossier MRTK/SDK/Experimental/Features. Ces composants peuvent être utilisés pour ajouter la prise en charge d’un service unique (par exemple, Spatial Awareness) à une application. Ces gestionnaires de services uniques sont répertoriés ci-dessous.

Chacun des composants ci-dessus, à l’exception de InputSystemManager, est responsable de la gestion de l’inscription et de l’état d’un seul type de service. InputSystem nécessite des services de support supplémentaires (par exemple, FocusProvider) qui sont également gérés par InputSystemManager.

En général, les méthodes définies par IMixedRealityServiceRegistrar sont appelées en interne par les composants de gestion des services ou appelées par les services qui nécessitent des composants de service supplémentaires pour fonctionner correctement. En règle générale, le code de l’application ne doit pas appeler ces méthodes, car cela peut entraîner un comportement imprévisible de l’application (par exemple, une instance de service mise en cache peut devenir non valide).

Voir aussi