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.

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.

Uzantı hizmetini yapılandırma

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 IMixedRealityServicedevralınsa daIMixedRealityDataProvider, veri sağlayıcıları ile MixedRealityServiceRegistrykaydedilmez. 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ı IMixedRealityInputDeviceManageruygulayan veri sağlayıcılarını kullanır.

Giriş sistemi veri sağlayıcıları

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.

Uzamsal farkındalık sistemi veri sağlayıcıları

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.

Ayrıca bkz.