Mixed Reality-Dienstregistrierung – MRTK2

Das Mixed Reality Toolkit verfügt über zwei sehr ähnlich benannte Komponenten, die verwandte Aufgaben ausführen: MixedRealityServiceRegistry und IMixedRealityServiceRegistrar.

MixedRealityServiceRegistry

MixedRealityServiceRegistry ist die Komponente, die Instanzen jedes registrierten Diensts (Kernsysteme und Erweiterungsdienste) enthält.

Hinweis

MixedRealityServiceRegistry enthält Instanzen von Objekten, die die IMixedRealityService-Schnittstelle implementieren, einschließlich IMixedRealityExtensionService.

Objekte, die den IMixedRealityDataProvider (eine Unterklasse von IMixedRealityService) implementieren, werden explizit nicht in MixedRealityServiceRegistry registriert. Diese Objekte werden von den einzelnen Diensten (z. B. Spatial Awareness) verwaltet.

MixedRealityServiceRegistry wird als statische C#-Klasse implementiert und ist das empfohlene Muster zum Abrufen von Dienstinstanzen im Anwendungscode.

Der folgende Codeausschnitt veranschaulicht das Abrufen eines IMixedRealityInputSystem-instance.

IMixedRealityInputSystem inputSystem = null;

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

IMixedRealityServiceRegistrar

IMixedRealityServiceRegistrar ist die Schnittstelle, die die Funktionalität definiert, die von Komponenten implementiert wird, die die Registrierung eines oder mehrerer Dienste verwalten. Komponenten, die IMixedRealityServiceRegistrar implementieren, sind für das Hinzufügen und Entfernen der Daten innerhalb von MixedRealityServiceRegistry verantwortlich. Das MixedRealityToolkit-Objekt ist eine solche Komponente.

Andere Registrierungen finden Sie im Ordner MRTK/SDK/Experimental/Features. Diese Komponenten können verwendet werden, um einer Anwendung Unterstützung für einen einzelnen Dienst (z. B. Spatial Awareness) hinzuzufügen. Diese einzelnen Dienst-Manager sind unten aufgeführt.

Jede der oben genannten Komponenten, mit Ausnahme von InputSystemManager, ist für die Verwaltung der Registrierung und status eines einzelnen Diensttyps verantwortlich. Das InputSystem erfordert einige zusätzliche Supportdienste (z. B. FocusProvider), die ebenfalls vom InputSystemManager verwaltet werden.

Im Allgemeinen werden die von IMixedRealityServiceRegistrar definierten Methoden intern von Dienstverwaltungskomponenten aufgerufen oder von Diensten aufgerufen, die zusätzliche Dienstkomponenten benötigen, um ordnungsgemäß zu funktionieren. Der Anwendungscode sollte diese Methoden im Allgemeinen nicht aufrufen, da dies dazu führen kann, dass sich die Anwendung unvorhersehbar verhält (z. B. ein zwischengespeicherter Dienst instance ungültig werden kann).

Weitere Informationen