Mixed Reality-Dienstregistrierung

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

MixedRealityServiceRegistry

MixedRealityServiceRegistry ist die Komponente, die Instanzen der einzelnen registrierten Dienste (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 verwaltet (z.B. Räumliche Wahrnehmung).

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

Der folgende Codeausschnitt veranschaulicht das Abrufen einer IMixedRealityInputSystem-Instanz.

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 mehrere Dienste verwalten. Komponenten, die IMixedRealityServiceRegistrar implementieren, sind für das Hinzufügen und Entfernen der Daten in 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. Räumliche Wahrnehmung) 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 des Status eines einzelnen Diensttyps verantwortlich. Das InputSystem erfordert einige zusätzliche Supportdienste (z. B. 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. Anwendungscode sollte diese Methoden im Allgemeinen 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