Mixed Reality service registry

I Mixed Reality Toolkit finns två komponenter med liknande namn som utför relaterade uppgifter: MixedRealityServiceRegistry och IMixedRealityServiceRegistrar.

MixedRealityServiceRegistry

MixedRealityServiceRegistry är den komponent som innehåller instanser av varje registrerad tjänst (kärnsystem och tilläggstjänster).

Anteckning

MixedRealityServiceRegistry innehåller instanser av objekt som implementerar gränssnittet IMixedRealityService, inklusive IMixedRealityExtensionService.

Objekt som implementerar IMixedRealityDataProvider (en underklass av IMixedRealityService) registreras uttryckligen inte i MixedRealityServiceRegistry. Dessa objekt hanteras av de enskilda tjänsterna (t.ex. spatial medvetenhet).

MixedRealityServiceRegistry implementeras som en statisk C#-klass och är det rekommenderade mönstret för att hämta tjänstinstanser i programkod.

Följande kodfragment visar hämtning av en IMixedRealityInputSystem-instans.

IMixedRealityInputSystem inputSystem = null;

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

IMixedRealityServiceRegistrar

IMixedRealityServiceRegistrar är det gränssnitt som definierar de funktioner som implementeras av komponenter som hanterar registreringen av en eller flera tjänster. Komponenter som implementerar IMixedRealityServiceRegistrar ansvarar för att lägga till och ta bort data i MixedRealityServiceRegistry. MixedRealityToolkit-objektet är en sådan komponent.

Andra registratorer finns i mappen MRTK/SDK/Experimental/Features. Dessa komponenter kan användas för att lägga till stöd för en enskild tjänst (t.ex. Spatial Awareness) i ett program. Dessa enskilda tjänsthanterare visas nedan.

Var och en av ovanstående komponenter, med undantag för InputSystemManager, ansvarar för att hantera registrering och status för en enskild tjänsttyp. InputSystem kräver vissa ytterligare supporttjänster (t.ex. FocusProvider) som också hanteras av InputSystemManager.

I allmänhet anropas metoderna som definieras av IMixedRealityServiceRegistrar internt av tjänsthanteringskomponenter eller anropas av tjänster som kräver ytterligare tjänstkomponenter för att fungera korrekt. Programkoden bör normalt inte anropa dessa metoder eftersom det kan leda till att programmet beter sig oförutsägbart (t.ex. att en cachelagrad tjänstinstans kan bli ogiltig).

Se även