Поделиться через


Реестр служб Смешанная реальность — MRTK2

Набор средств Смешанная реальность содержит два компонента с очень похожими именами, которые выполняют связанные задачи: MixedRealityServiceRegistry и IMixedRealityServiceRegistrar.

MixedRealityServiceRegistry

MixedRealityServiceRegistry — это компонент, содержащий экземпляры каждой зарегистрированной службы (основные системы и службы расширений).

Примечание

MixedRealityServiceRegistry содержит экземпляры объектов, реализующих интерфейс IMixedRealityService , включая IMixedRealityExtensionService.

Объекты, реализующие IMixedRealityDataProvider (подкласс IMixedRealityService), явно не регистрируются в MixedRealityServiceRegistry. Управление этими объектами осуществляется с помощью отдельных служб (например, пространственной осведомленности).

MixedRealityServiceRegistry реализуется как статический класс C# и является рекомендуемым шаблоном для получения экземпляров службы в коде приложения.

В следующем фрагменте кода показано получение экземпляра IMixedRealityInputSystem.

IMixedRealityInputSystem inputSystem = null;

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

IMixedRealityServiceRegistrar

IMixedRealityServiceRegistrar — это интерфейс, определяющий функциональные возможности, реализованные компонентами, которые управляют регистрацией одной или нескольких служб. Компоненты, реализующие IMixedRealityServiceRegistrar, отвечают за добавление и удаление данных в MixedRealityServiceRegistry. Объект MixedRealityToolkit является одним из таких компонентов.

Другие регистраторы можно найти в папке MRTK/SDK/Experimental/Features. Эти компоненты можно использовать для добавления в приложение поддержки отдельной службы (например, пространственной осведомленности). Ниже перечислены эти отдельные диспетчеры служб.

Каждый из указанных выше компонентов, за исключением InputSystemManager, отвечает за управление регистрацией и состоянием одного типа службы. InputSystem требует некоторых дополнительных служб поддержки (например, FocusProvider), которые также управляются InputSystemManager.

Как правило, методы, определенные IMixedRealityServiceRegistrar, вызываются внутренними компонентами управления службами или службами, которым требуются дополнительные компоненты службы для правильной работы. Код приложения, как правило, не должен вызывать эти методы, так как это может привести к непредсказуемой работы приложения (например, кэшированный экземпляр службы может стать недопустимым).

См. также раздел