Sistemler, uzantı hizmetleri ve veri sağlayıcıları — MRTK2
Karma Gerçeklik Araç Seti'nde özelliklerin çoğu hizmet biçiminde sunulur. Hizmetler üç birincil kategoride gruplandırılır: sistemler, uzantı hizmetleri ve veri sağlayıcıları.
Sistemleri
Sistemler, Karma Gerçeklik Araç Seti'nin temel işlevlerini sağlayan hizmetlerdir. Tüm sistemler arabirimin IMixedRealityService
uygulamalarıdır.
- BoundarySystem
- CameraSystem
- DiagnosticsSystem
- InputSystem
- SceneSystem
- SpatialAwarenessSystem
- TeleportSystem
Listelenen sistemlerin her biri MixedRealityToolkit bileşeninin yapılandırma profilinde görünür.
Uzantıları
Uzantı hizmetleri, Karma Gerçeklik Araç Seti'nin işlevselliğini genişleten bileşenlerdir. Tüm uzantı hizmetlerinin arabirimini uygulayacağını belirtmesi IMixedRealityExtensionService
gerekir.
Uzantı hizmetleri oluşturma hakkında bilgi için lütfen Uzantı hizmetleri makalesine bakın.
MRTK'nin erişebileceği uzantı hizmetleri, MixedRealityToolkit bileşeninin yapılandırma profilinin Uzantılar bölümü kullanılarak kaydedilir ve yapılandırılır.
Veri sağlayıcılar
Veri sağlayıcıları, adları gereği Karma Gerçeklik Toolkit hizmetine veri sağlayan bileşenlerdir. Tüm veri sağlayıcıları arabirimini uygulayacağını IMixedRealityDataProvider
belirtmelidir.
Not
Tüm hizmetler için veri sağlayıcıları gerekmez. Karma Gerçeklik Toolkit'in sistemlerinde veri sağlayıcılarını kullanan tek hizmetler Giriş ve Uzamsal Farkındalık sistemleridir.
Belirli BIR MRTK hizmeti tarafından erişilebilmek için veri sağlayıcıları hizmetin yapılandırma profiline kaydedilir.
Uygulama kodu, arabirim aracılığıyla veri sağlayıcılarına IMixedRealityDataProviderAccess
erişir. Erişimi basitleştirmek için veri sağlayıcıları yardımcı sınıfı aracılığıyla CoreServices
da alınabilir.
var inputSimulationService = CoreServices.GetDataProvider<IInputSimulationService>(CoreServices.InputSystem);
Önemli
' den IMixedRealityService
devralınsa daIMixedRealityDataProvider
, veri sağlayıcıları ile MixedRealityServiceRegistry
kaydedilmez. Veri sağlayıcılarına erişmek için uygulama kodunun kayıtlı oldukları hizmet örneğini sorgulaması gerekir (örn: giriş sistemi).
Giriş
MRTK giriş sistemi yalnızca uygulamasını IMixedRealityInputDeviceManager
uygulayan veri sağlayıcılarını kullanır.
Aşağıdaki örnekte giriş benzetimi sağlayıcısına erişme ve SmoothEyeTracking özelliğini değiştirme işlemleri gösterilmektedir.
IMixedRealityDataProviderAccess dataProviderAccess = CoreServices.InputSystem as IMixedRealityDataProviderAccess;
if (dataProviderAccess != null)
{
IInputSimulationService inputSimulation =
dataProviderAccess.GetDataProvider<IInputSimulationService>();
if (inputSimulation != null)
{
inputSimulation.SmoothEyeTracking = !inputSimulation.SmoothEyeTracking;
}
}
Çekirdek giriş sistemi için bir veri sağlayıcısına erişim, yardımcı sınıfı kullanarak CoreServices
da basitleştirilmiş olabilir.
var inputSimulationService = CoreServices.GetInputSystemDataProvider<IInputSimulationService>();
if (inputSimulationService != null)
{
// do something here
}
Not
Giriş sistemi yalnızca uygulamanın çalıştığı platform için desteklenen veri sağlayıcılarını döndürür.
MRTK giriş sistemi için veri sağlayıcısı yazma hakkında bilgi için bkz. Giriş sistemi veri sağlayıcısı oluşturma.
Uzamsal farkındalık
MRTK uzamsal farkındalık sistemi yalnızca arabirimi uygulayan IMixedRealitySpatialAwarenessObserver
veri sağlayıcılarını kullanır.
Aşağıdaki örnek, kayıtlı uzamsal ağ veri sağlayıcılarına erişmeyi ve tirelerin görünürlüğünü değiştirmeyi gösterir.
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;
}
}
Temel uzamsal farkındalık sistemi için bir veri sağlayıcısına erişim, yardımcı sınıfın CoreServices
kullanımıyla da basitleştirilebilir.
var dataProvider = CoreServices.GetSpatialAwarenessSystemDataProvider<IMixedRealitySpatialAwarenessMeshObserver>();
if (dataProvider != null)
{
// do something here
}
Not
Uzamsal farkındalık sistemi yalnızca uygulamanın üzerinde çalıştığı platform için desteklenen veri sağlayıcılarını döndürür.
MRTK uzamsal farkındalık sistemi için veri sağlayıcısı yazma hakkında bilgi için bkz. Uzamsal farkındalık sistemi veri sağlayıcısı oluşturma.