Mixed Reality-serviceregister

De Mixed Reality Toolkit bevat twee zeer vergelijkbare benoemde onderdelen die gerelateerde taken uitvoeren: MixedRealityServiceRegistry en IMixedRealityServiceRegistrar.

MixedRealityServiceRegistry

MixedRealityServiceRegistry is het onderdeel dat exemplaren bevat van elke geregistreerde service (kernsystemen en extensieservices).

Notitie

De MixedRealityServiceRegistry bevat exemplaren van objecten die de IMixedRealityService-interface implementeren, waaronder IMixedRealityExtensionService.

Objecten die de IMixedRealityDataProvider implementeren (een subklasse van IMixedRealityService) worden expliciet niet geregistreerd in MixedRealityServiceRegistry. Deze objecten worden beheerd door de afzonderlijke services (bijvoorbeeld: Spatial Awareness).

MixedRealityServiceRegistry wordt geïmplementeerd als een statische C#-klasse en is het aanbevolen patroon om service-exemplaren in toepassingscode te verkrijgen.

In het volgende fragment wordt gedemonstreerd hoe u een exemplaar van IMixedRealityInputSystem aanschaft.

IMixedRealityInputSystem inputSystem = null;

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

IMixedRealityServiceRegistrar

IMixedRealityServiceRegistrar is de interface die de functionaliteit definieert die wordt geïmplementeerd door onderdelen die de registratie van een of meer services beheren. Onderdelen die IMixedRealityServiceRegistrar implementeren, zijn verantwoordelijk voor het toevoegen en verwijderen van de gegevens in MixedRealityServiceRegistry. Het MixedRealityToolkit-object is een dergelijk onderdeel.

Andere registrars vindt u in de map MRTK/SDK/Experimental/Features. Deze onderdelen kunnen worden gebruikt om ondersteuning voor één service (bijvoorbeeld Spatial Awareness) toe te voegen aan een toepassing. Deze enkele servicebeheerders worden hieronder vermeld.

Elk van de bovenstaande onderdelen, met uitzondering van InputSystemManager, is verantwoordelijk voor het beheren van de registratie en status van één servicetype. Het InputSystem vereist enkele aanvullende ondersteuningsservices (bijvoorbeeld FocusProvider) die ook worden beheerd door de InputSystemManager.

Over het algemeen worden de methoden die zijn gedefinieerd door IMixedRealityServiceRegistrar intern aangeroepen door servicebeheeronderdelen of aangeroepen door services waarvoor extra serviceonderdelen correct moeten werken. Toepassingscode moet deze methoden doorgaans niet aanroepen, omdat dit ertoe kan leiden dat de toepassing zich onvoorspelbaar gedraagt (bijvoorbeeld: een service-exemplaar in de cache kan ongeldig worden).

Zie ook