Rendszerek, bővítményszolgáltatások és adatszolgáltatók – MRTK2

A Mixed Reality Eszközkészletben számos funkció szolgáltatás formájában érhető el. A szolgáltatások három elsődleges kategóriába sorolhatók: rendszerek, bővítményszolgáltatások és adatszolgáltatók.

rendszerek

A rendszerek olyan szolgáltatások, amelyek a Mixed Reality Toolkit alapvető funkcióit biztosítják. Minden rendszer az IMixedRealityService interfész implementációja.

A felsorolt rendszerek mindegyike megjelenik a MixedRealityToolkit összetevő konfigurációs profiljában.

Bővítmények

A bővítményszolgáltatások olyan összetevők, amelyek kibővítik a Mixed Reality Toolkit funkcióit. Minden bővítményszolgáltatásnak meg kell adnia, hogy implementálja a IMixedRealityExtensionService felületet.

A bővítményszolgáltatások létrehozásával kapcsolatos információkért tekintse meg a Bővítményszolgáltatások című cikket.

Az MRTK számára elérhető bővítményszolgáltatásokat a MixedRealityToolkit összetevő konfigurációs profiljának Bővítmények szakaszában regisztrálja és konfigurálja.

Bővítményszolgáltatás konfigurálása

Adatszolgáltatók

Az adatszolgáltatók olyan összetevők, amelyek nevük szerint adatokat szolgáltatnak egy Mixed Reality Eszközkészlet-szolgáltatásnak. Minden adatszolgáltatónak meg kell adnia, hogy implementálja a IMixedRealityDataProvider felületet.

Megjegyzés

Nem minden szolgáltatáshoz lesz szükség adatszolgáltatókra. A Mixed Reality Eszközkészlet rendszerei közül csak az Input és a Spatial Awareness rendszerek használják az adatszolgáltatókat.

Ahhoz, hogy az adott MRTK-szolgáltatás elérhető legyen, az adatszolgáltatók regisztrálva vannak a szolgáltatás konfigurációs profiljában.

Az alkalmazáskód a felületen keresztül fér hozzá az adatszolgáltatókhoz IMixedRealityDataProviderAccess . A hozzáférés egyszerűsítése érdekében az adatszolgáltatók a CoreServices segédosztályon keresztül is lekérhetők.

var inputSimulationService = CoreServices.GetDataProvider<IInputSimulationService>(CoreServices.InputSystem);

Fontos

Bár IMixedRealityDataProvider az öröklődés a következőtől származik IMixedRealityService, az adatszolgáltatók nem regisztrálva vannak a MixedRealityServiceRegistryrendszerben. Az adatszolgáltatók eléréséhez az alkalmazáskódnak le kell kérdeznie azt a szolgáltatáspéldányt, amelyhez regisztrálták őket (pl. bemeneti rendszer).

Bevitel

Az MRTK bemeneti rendszer csak azokat az adatszolgáltatókat használja, amelyek implementálják a IMixedRealityInputDeviceManager.

Bemeneti rendszer adatszolgáltatói

Az alábbi példa bemutatja a bemeneti szimulációs szolgáltató elérését, és a SmoothEyeTracking tulajdonság váltását.

IMixedRealityDataProviderAccess dataProviderAccess = CoreServices.InputSystem as IMixedRealityDataProviderAccess;

if (dataProviderAccess != null)
{
    IInputSimulationService inputSimulation =
        dataProviderAccess.GetDataProvider<IInputSimulationService>();

    if (inputSimulation != null)
    {
        inputSimulation.SmoothEyeTracking = !inputSimulation.SmoothEyeTracking;
    }
}

Az alapvető bemeneti rendszer adatszolgáltatóinak CoreServices elérése a segédosztály használatával is egyszerűsíthető.

var inputSimulationService = CoreServices.GetInputSystemDataProvider<IInputSimulationService>();
if (inputSimulationService != null)
{
    // do something here
}

Megjegyzés

A bemeneti rendszer csak azokat az adatszolgáltatókat adja vissza, amelyek támogatottak ahhoz a platformhoz, amelyen az alkalmazás fut.

Az MRTK bemeneti rendszer adatszolgáltatójának megírásával kapcsolatos információkért lásd : bemenetirendszer-adatszolgáltató létrehozása.

Térbeli tudatosság

Az MRTK térinformatikai rendszere csak az interfészt implementáló IMixedRealitySpatialAwarenessObserver adatszolgáltatókat használja.

Térinformatikai rendszeradat-szolgáltatók

Az alábbi példa bemutatja a regisztrált térbeli hálóadat-szolgáltatók elérését és a hálók láthatóságának módosítá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;
    }
}

Az alapvető térbeli tudatossági rendszer adatszolgáltatóinak CoreServices elérése a segédosztály használatával is egyszerűsíthető.

var dataProvider = CoreServices.GetSpatialAwarenessSystemDataProvider<IMixedRealitySpatialAwarenessMeshObserver>();
if (dataProvider != null)
{
    // do something here
}

Megjegyzés

A térbeli tudatossági rendszer csak azokat az adatszolgáltatókat adja vissza, amelyek támogatottak ahhoz a platformhoz, amelyen az alkalmazás fut.

Az MRTK térinformatikai rendszer adatszolgáltatójának megírásáról a térbeli tudatossági rendszer adatszolgáltatójának létrehozásáról szóló cikkben olvashat.

Lásd még