Registro del servicio de Mixed Reality

El Mixed Reality Toolkit tiene dos componentes con nombre muy similares 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 que se usa para adquirir instancias de servicio en el código de la 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 los componentes que administran el registro de uno o varios servicios. Los componentes que implementan IMixedRealityServiceRegistrar son responsables de agregar y quitar los datos dentro de MixedRealityServiceRegistry. El objeto MixedRealityToolkit es uno de estos componentes.

Puede encontrar otros registradores en la carpeta MRTK/SDK/Experimental/Features. Estos componentes se pueden usar para agregar compatibilidad con un solo 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 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 puede provocar que la aplicación se comporte de forma imprevisible (por ejemplo, una instancia de servicio almacenada en caché puede dejar de ser válida).

Consulte también