Mixed Reality rejestru usług

Zestaw Mixed Reality Toolkit ma dwa bardzo podobne nazwy składników, które wykonują powiązane zadania: MixedRealityServiceRegistry i IMixedRealityServiceRegistrar.

MixedRealityServiceRegistry

MixedRealityServiceRegistry to składnik, który zawiera wystąpienia każdej zarejestrowanej usługi (podstawowe systemy i usługi rozszerzeń).

Uwaga

MixedRealityServiceRegistry zawiera wystąpienia obiektów, które implementują interfejs IMixedRealityService, w tym IMixedRealityExtensionService.

Obiekty implementujące obiekt IMixedRealityDataProvider (podklasa IMixedRealityService) nie są jawnie zarejestrowane w rejestrze MixedRealityServiceRegistry. Te obiekty są zarządzane przez poszczególne usługi (np. Świadomość przestrzenna).

Klasa MixedRealityServiceRegistry jest zaimplementowana jako statyczna klasa języka C# i jest zalecanym wzorcem do pozyskiwania wystąpień usługi w kodzie aplikacji.

Poniższy fragment kodu przedstawia uzyskiwanie wystąpienia IMixedRealityInputSystem.

IMixedRealityInputSystem inputSystem = null;

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

IMixedRealityServiceRegistrar

IMixedRealityServiceRegistrar to interfejs, który definiuje funkcje implementowane przez składniki, które zarządzają rejestracją co najmniej jednej usługi. Składniki, które implementują element IMixedRealityServiceRegistrar, są odpowiedzialne za dodawanie i usuwanie danych w obrębie regionu MixedRealityServiceRegistry. Obiekt MixedRealityToolkit jest jednym z takich składników.

Innych rejestratorów można znaleźć w folderze MRTK/SDK/Experimental/Features. Te składniki mogą służyć do dodawania obsługi pojedynczej usługi (np. świadomości przestrzennej) do aplikacji. Poniżej wymieniono tych menedżerów pojedynczych usług.

Każdy z powyższych składników, z wyjątkiem InputSystemManager, jest odpowiedzialny za zarządzanie rejestracją i stanem pojedynczego typu usługi. InputSystem wymaga dodatkowych usług pomocy technicznej (np. FocusProvider), które są również zarządzane przez InputSystemManager.

Ogólnie rzecz biorąc, metody zdefiniowane przez element IMixedRealityServiceRegistrar są wywoływane wewnętrznie przez składniki zarządzania usługami lub wywoływane przez usługi, które wymagają dodatkowych składników usługi do poprawnego działania. Zazwyczaj kod aplikacji nie powinien wywoływać tych metod, ponieważ może to spowodować nieprzewidywalny zachowanie aplikacji (np. wystąpienie usługi w pamięci podręcznej może stać się nieprawidłowe).

Zobacz też