Mixed Reality szolgáltatásregisztrációs adatbázis – MRTK2
A Mixed Reality eszközkészlet két nagyon hasonló nevű összetevővel rendelkezik, amelyek kapcsolódó feladatokat hajtanak végre: MixedRealityServiceRegistry és IMixedRealityServiceRegistrar.
MixedRealityServiceRegistry
A MixedRealityServiceRegistry az az összetevő, amely az egyes regisztrált szolgáltatások (alapvető rendszerek és bővítményszolgáltatások) példányait tartalmazza.
Megjegyzés
A MixedRealityServiceRegistry olyan objektumpéldányokat tartalmaz, amelyek az IMixedRealityService felületet implementálják, beleértve az IMixedRealityExtensionService szolgáltatást is.
Az IMixedRealityDataProvidert (az IMixedRealityService alosztályát) implementáló objektumok kifejezetten nincsenek regisztrálva a MixedRealityServiceRegistryben. Ezeket az objektumokat az egyes szolgáltatások kezelik (például: Térbeli tudatosság).
A MixedRealityServiceRegistry statikus C#-osztályként van implementálva, és az alkalmazáskód szolgáltatáspéldányainak beszerzéséhez ajánlott minta.
Az alábbi kódrészlet egy IMixedRealityInputSystem-példány beszerzését mutatja be.
IMixedRealityInputSystem inputSystem = null;
if (!MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
{
// Failed to acquire the input system. It may not have been registered
}
IMixedRealityServiceRegistrar
Az IMixedRealityServiceRegistrar az a felület, amely meghatározza az egy vagy több szolgáltatás regisztrációját kezelő összetevők által megvalósított funkciókat. Az IMixedRealityServiceRegistrart implementáló összetevők felelősek az adatok Hozzáadásáért és eltávolításáért a MixedRealityServiceRegistryben. A MixedRealityToolkit objektum egy ilyen összetevő.
Más regisztrálók az MRTK/SDK/Experimental/Features mappában találhatók. Ezek az összetevők egyetlen szolgáltatás (pl. térbeli tudatosság) támogatásának alkalmazáshoz való hozzáadására használhatók. Ezek az önálló szolgáltatásmenedzserek az alábbiakban láthatók.
- BoundarySystemManager
- CameraSystemManager
- DiagnosticsSystemManager
- InputSystemManager
- SpatialAwarenessSystemManager
- TeleportSystemManager
A fenti összetevők mindegyike az InputSystemManager kivételével felelős egyetlen szolgáltatástípus regisztrációjának és állapotának kezeléséért. Az InputSystem további támogatási szolgáltatásokat igényel (például: FocusProvider), amelyeket az InputSystemManager is kezel.
Az IMixedRealityServiceRegistrar által definiált metódusokat általában szolgáltatásfelügyeleti összetevők vagy olyan szolgáltatások hívják meg, amelyek további szolgáltatásösszetevőket igényelnek a megfelelő működéshez. Az alkalmazáskódnak általában nem kell meghívnia ezeket a metódusokat, mivel ez az alkalmazás kiszámíthatatlan viselkedését okozhatja (például egy gyorsítótárazott szolgáltatáspéldány érvénytelenné válhat).