Registro de servicios de Mixed Reality: MRTK2

El kit de herramientas de Mixed Reality tiene dos componentes con un nombre muy similar que realizan tareas relacionadas: MixedRealityServiceRegistry e IMixedRealityServiceRegistrar.

MixedRealityServiceRegistry

MixedRealityServiceRegistry es el componente que contiene instancias de cada servicio registrado (sistemas principales y servicios de extensión).

Nota

MixedRealityServiceRegistry contiene instancias de objetos que implementan la interfaz IMixedRealityService , incluido IMixedRealityExtensionService.

Los objetos que implementan IMixedRealityDataProvider (una subclase de IMixedRealityService) no se registran explícitamente en MixedRealityServiceRegistry. Estos objetos se administran mediante los servicios individuales (por ejemplo: Reconocimiento espacial).

MixedRealityServiceRegistry se implementa como una clase estática de C# y es el patrón recomendado para adquirir instancias de servicio en el código de aplicación.

En el fragmento de código siguiente se muestra cómo adquirir una instancia de IMixedRealityInputSystem.

IMixedRealityInputSystem inputSystem = null;

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

IMixedRealityServiceRegistrar

IMixedRealityServiceRegistrar es la interfaz que define la funcionalidad implementada por componentes que administran el registro de uno o varios servicios. Los componentes que implementan IMixedRealityServiceRegistrar son responsables de agregar y quitar los datos en MixedRealityServiceRegistry. El objeto MixedRealityToolkit es un componente de este tipo.

Otros registradores se pueden encontrar en la carpeta MRTK/SDK/Experimental/Features. Estos componentes se pueden usar para agregar compatibilidad con un único servicio (por ejemplo: Reconocimiento espacial) a una aplicación. Estos administradores de servicios únicos se enumeran a continuación.

Cada uno de los componentes anteriores, a excepción de InputSystemManager, es responsable de administrar el registro y el estado de un único tipo de servicio. InputSystem requiere algunos servicios de soporte técnico adicionales (por ejemplo, FocusProvider) que también administra InputSystemManager.

En general, los componentes de administración de servicios llaman internamente a los métodos definidos por IMixedRealityServiceRegistrar o a los que llaman los servicios que requieren componentes de servicio adicionales para funcionar correctamente. Por lo general, el código de la aplicación no debe llamar a estos métodos, ya que esto puede hacer que la aplicación se comporte de forma impredecible (por ejemplo, una instancia de servicio en caché puede convertirse en no válida).

Consulte también