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.
- BoundarySystem
- CameraSystem
- DiagnosticsSystem
- InputSystem
- SceneSystem
- SpatialAwarenessSystem
- TeleportSystem
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.
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 MixedRealityServiceRegistry
rendszerben. 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
.
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.
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.