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 .

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.

Konfigurace služby rozšíření

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.

Zprostředkovatelé dat vstupního systému

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 .

Zprostředkovatelé dat systému pro sledování prostorových dat

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í.

Viz také