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

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

Hinweis

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

Objekte, die den IMixedRealityDataProvider (eine Unterklasse von IMixedRealityService ) implementieren, werden explizit nicht im MixedRealityServiceRegistry registriert. Diese Objekte werden von den einzelnen Diensten verwaltet (ex: Räumliches Bewusstsein).

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

Im folgenden Codeausschnitt wird das Abrufen einer IMixedRealityInputSystem-Instanz veranschaulicht.

IMixedRealityInputSystem inputSystem = null;

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

IMixedRealityServiceRegistrar

Das 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 der MixedRealityServiceRegistry verantwortlich. Das MixedRealityToolkit-Objekt ist eine solche Komponente.

Andere Registrierungsstellen finden Sie im Ordner "MRTK/SDK/Experimental/Features". Diese Komponenten können verwendet werden, um einen einzelnen Dienst (z. B. Räumliches Bewusstsein) zu einer Anwendung hinzuzufügen. Diese einzelnen Dienstmanager werden unten aufgeführt.

Jede der oben genannten Komponenten mit Ausnahme des InputSystemManagers ist für die Verwaltung der Registrierung und des Status eines einzelnen Diensttyps verantwortlich. Das InputSystem erfordert einige zusätzliche Supportdienste (ex: FocusProvider), die auch vom InputSystemManager verwaltet werden.

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

Siehe auch