Systémy, služby rozšíření a poskytovatelé dat – MRTK2
V Mixed Reality Toolkit je řada funkcí poskytována ve formě služeb. Služby jsou seskupené do tří primárních kategorií: systémy, služby rozšíření a poskytovatelé dat.
Certified
Systémy jsou služby, které poskytují základní funkce sady Mixed Reality Toolkit. Všechny systémy jsou implementace rozhraní IMixedRealityService
.
- BoundarySystem
- CameraSystem
- DiagnosticsSystem
- InputSystem
- SceneSystem
- SpatialAwarenessSystem
- TeleportSystem
Každý z uvedených systémů je uveden v konfiguračním profilu komponenty MixedRealityToolkit.
Rozšíření
Rozšiřující služby jsou komponenty, které rozšiřují funkce sady Mixed Reality Toolkit. Všechny služby rozšíření musí určit, že implementují IMixedRealityExtensionService
rozhraní.
Informace o vytváření služeb rozšíření najdete v článku Služby rozšíření .
Aby byly služby rozšíření přístupné pro MRTK, jsou zaregistrované a nakonfigurované pomocí oddílu Rozšíření konfiguračního profilu komponenty MixedRealityToolkit.
Poskytovatelé dat
Poskytovatelé dat jsou komponenty, které podle svého názvu poskytují data službě Mixed Reality Toolkit. Všichni poskytovatelé dat musí zadat, že implementují IMixedRealityDataProvider
rozhraní.
Poznámka
Ne všechny služby budou vyžadovat poskytovatele dat. Ze systémů Mixed Reality Toolkit jsou jedinými službami, které využívají poskytovatele dat, systémy Input a Spatial Awareness.
Aby mohli být poskytovatelé dat přístupní ke konkrétní službě MRTK, jsou zaregistrovaní v konfiguračním profilu služby.
Kód aplikace přistupuje k poskytovatelům dat prostřednictvím IMixedRealityDataProviderAccess
rozhraní. Pro zjednodušení přístupu je možné poskytovatele dat načíst také prostřednictvím CoreServices
pomocné třídy.
var inputSimulationService = CoreServices.GetDataProvider<IInputSimulationService>(CoreServices.InputSystem);
Důležité
I když IMixedRealityDataProvider
dědí z IMixedRealityService
, poskytovatelé dat nejsou zaregistrovaní v nástroji MixedRealityServiceRegistry
. Pro přístup k poskytovatelům dat musí kód aplikace dotazovat instanci služby, pro kterou byli zaregistrovaní (např. vstupní systém).
Vstup
Vstupní systém MRTK využívá pouze zprostředkovatele dat, kteří implementují IMixedRealityInputDeviceManager
.
Následující příklad ukazuje přístup k zprostředkovateli vstupní simulace a přepnout SmoothEyeTracking vlastnost.
IMixedRealityDataProviderAccess dataProviderAccess = CoreServices.InputSystem as IMixedRealityDataProviderAccess;
if (dataProviderAccess != null)
{
IInputSimulationService inputSimulation =
dataProviderAccess.GetDataProvider<IInputSimulationService>();
if (inputSimulation != null)
{
inputSimulation.SmoothEyeTracking = !inputSimulation.SmoothEyeTracking;
}
}
Přístup k poskytovateli dat pro základní vstupní systém lze také zjednodušit pomocí CoreServices
pomocné třídy.
var inputSimulationService = CoreServices.GetInputSystemDataProvider<IInputSimulationService>();
if (inputSimulationService != null)
{
// do something here
}
Poznámka
Vstupní systém vrátí pouze poskytovatele dat, kteří jsou podporováni pro platformu, na které je aplikace spuštěná.
Informace o zápisu zprostředkovatele dat pro vstupní systém MRTK najdete v tématu Vytvoření zprostředkovatele dat vstupního systému.
Prostorové povědomí
Systém MRTK pro sledování prostorových prostor využívá pouze poskytovatele dat, kteří implementují rozhraní IMixedRealitySpatialAwarenessObserver
.
Následující příklad ukazuje přístup k registrovaným poskytovatelům dat prostorové sítě a změnu viditelnosti sítí.
IMixedRealityDataProviderAccess dataProviderAccess =
CoreServices.SpatialAwarenessSystem as IMixedRealityDataProviderAccess;
if (dataProviderAccess != null)
{
IReadOnlyList<IMixedRealitySpatialAwarenessMeshObserver> observers =
dataProviderAccess.GetDataProviders<IMixedRealitySpatialAwarenessMeshObserver>();
foreach (IMixedRealitySpatialAwarenessMeshObserver observer in observers)
{
// Set the mesh to use the occlusion material
observer.DisplayOption = SpatialMeshDisplayOptions.Occlusion;
}
}
Přístup k poskytovateli dat pro základní systém sledování prostorového CoreServices
povědomí lze také zjednodušit pomocí pomocné třídy.
var dataProvider = CoreServices.GetSpatialAwarenessSystemDataProvider<IMixedRealitySpatialAwarenessMeshObserver>();
if (dataProvider != null)
{
// do something here
}
Poznámka
Systém prostorového povědomí vrací pouze poskytovatele dat, kteří jsou podporováni pro platformu, na které je aplikace spuštěná.
Informace o vytvoření zprostředkovatele dat pro systém sledování prostorového povědomí MRTK najdete v tématu Vytvoření poskytovatele dat systému pro sledování prostorového povědomí.