Önceki sürümlerden güncelleştirme

Geçerli sürümü bulma

Şu anda hangi MRTK sürümünü kullanmakta olduğunu an etmek için şu yönergeleri izleyin:

  1. MRTK projenizi Unity'de açma
  2. Uygulama pencerenizin "MixedRealityToolkit" klasörüne Project gidin
  3. "Sürüm" adlı dosyayı açın

Yukarıdaki dosya ve klasör yoksa MRTK'nin daha yeni bir sürümündesinizdir. Bu durumda, şunları deneyin:

  1. "Mixed Reality Toolkit Foundation" klasörüne gidin
  2. Unity'de önizlemeyi görmek veya bir metin düzenleyicisiyle açmak için "package.json" üzerine tıklayın
  3. "version:" sözcüğüne sahip satırına bakın

MRTK'nin yeni bir sürümüne yükseltme

Kullanım dışı bileşenlerden otomatik olarak düzeltme ve yükseltme yapmak ve hataya neden olan değişikliklere ayarlamak için MRTK güncelleştirmesi alındıktan sonra geçiş aracını çalıştırmanızı kesinlikle öneririz. Geçiş aracı Araçlar paketinin bir parçası.

Aşağıdaki yönergeler 2.4.0 ile 2.5.0 yükseltme yolunu açıklar. Projeniz 2.3.0 veya önceki bir sürümde ise yükseltme yolunu anlamak için sürümler arasındaki değişiklikleri okuyun veya sürüme göre sürüm yükseltmesi yapmak için önceki sürümün yönergelerini okuyun.

Karma Gerçeklik Özellik Aracı

MRTK'ı daha yeni bir MRTK sürümüne yükseltmenin en kolay yolu Karma Gerçeklik Özellik Aracı'nı kullanarak en son paketleri indirmek ve bunları doğrudan Unity projenize yüklemektir.

Proje daha önce Unity varlık (.unitypackage) dosyalarını kullandı ise lütfen bu yönergelere bakın.

Unity varlık (.unitypackage) dosyaları

Bir diğer yükseltme yolu da MRTK Unity paketlerini el ile indirmek ve bunları projenize uygulamaktır. Aşağıdaki adımlara bakın,

  1. Yükseltme adımlarının herhangi bir noktasında herhangi bir snag'a isabet ediyor olurken geçerli projenizin bir kopyasını kaydedin.
  2. Unity'i kapatma
  3. Assets klasörünün içinde, .meta dosyalarıyla birlikte aşağıdaki MRTK klasörlerini silin (projede listelenen tüm klasörlere sahip değildir)
    • MRTK/Çekirdek
    • MRTK/Örnekler
    • MRTK/Uzantılar
    • MRTK/Sağlayıcılar
    • MRTK/SDK
    • MRTK/Hizmetler
    • MRTK/StandardAssets

    Önemli

    MRTK gölgelendiricilerinde değişiklik yapıldı ise MRTK/StandardAssets klasörünü smeden önce yerel yedekleme oluşturun

    • MRTK/Araçlar

    Önemli

    MixedRealityToolkit.Generated klasörünü veya .meta dosyasını SILMEYİN.

  4. Kitaplık klasörünü silme

    Önemli

    Unity Collab gibi bazı Unity araçları yapılandırma bilgilerini Kitaplık klasörüne kaydedebilir. Bunu sağlayan bir araç kullanıyorsanız, silmeden önce aracın veri klasörünü Kitaplık'tan kopyalayın, ardından Kitaplık yeniden üretdikten sonra geri yükleme.

  5. Projeyi Unity'de yeniden açma
  6. Yeni Unity paketlerini içeri aktarma
    • Temel - Önce bu paketi içeri aktarın
    • Araçlar
    • (İsteğe bağlı) Uzantı -ları

    Not

    Ek uzantılar yüklenmişse, bunların yeniden içe aktarılmış olması gerekir.

    • (İsteğe bağlı) Örnekler
  7. Unity'i kapatın ve Kitaplık klasörünü silin (önce aşağıdaki notu okuyun!). Unity'yi varlık veritabanını yenilemeye ve mevcut özel profilleri uzlaştırmaya zorlamak için bu adım gereklidir.
  8. Unity'i ve projesinde her sahneyi başlatma
    • Varsa, hiyerarşiden MixedRealityToolkit ve MixedRealityPlayspace'isilin. Bu işlem ana kamerayı siler ancak sonraki adımda yeniden oluşturulur. Ana kameranın herhangi bir özelliği el ile değiştirilmişse, bunlar yeni kamera oluşturulduktan sonra el ile yeniden uygulanmalıdır.
    • MixedRealityToolkit - Sahneye Ekle ve Yapılandır'ı seçin
    • MixedRealityToolkit - Yardımcı Programlar - > Güncelleştirme - > Denetleyici Eşleme Profilleri 'ni seçin (yalnızca bir kez yapılması gerekir) - Bu işlem, özel atanan giriş eylemlerinizi olduğu gibi bırakırken güncelleştirilmiş eksenler ve verilerle özel denetleyici eşleme profillerini de güncelleştirilir
  9. Tüm kodunuzun en son sürüme güncelleştirilmiş olduğundan emin olmak için geçiş aracını çalıştırın ve aracı Tam Project'da çalıştırın. Geçiş penceresi, her biri kendi başına çalışması gereken bir dizi farklı geçiş işleyicisi içerir. Bu adım şunları içerir:
    • Geçiş İşleyicisi Seçimi açılan listesinden ilk geçiş işleyicisini seçin.
    • "Tam Ekran" Project tıklayın.
    • "Geçiş için tam proje ekle" düğmesine tıklayın (bu, projenin tamamını geçirecek nesneler için tarar).
    • Geçirilebilir nesneler bulunursa etkinleştirilmesi gereken "Geçir" düğmesine tıklayın.
    • Açılan liste içindeki geçiş işleyicilerinin her biri için önceki üç adımı yineler. (Gelecekteki bir sürümde bu geçiş işlemini basitleştirmek için yaplanacak çalışmaları kapsayan bu soruna bakın)

Unity varlık dosyalarından Karma Gerçeklik Özellik Aracına geçiş

Unity varlık dosyalarından Karma Gerçeklik Özellik Aracı paketlerine geçiş yapmak bir dizi avantaj getirir:

  • Daha kolay güncelleştirme
  • Daha hızlı derleme süreleri
  • Visual Studio çözümünde daha az proje

Karma Gerçeklik Özellik Aracı'nı kullanmaya değiştirmek için tek kullanımlık bir dizi el ile adım gerekir.

  1. Geçerli projenizin bir kopyasını kaydedin.
  2. Unity'i kapatma
  3. Assets klasörünün içinde, .meta dosyalarıyla birlikte aşağıdaki MRTK klasörlerini silin (projede listelenen tüm klasörlere sahip değildir)
    • MRTK/Çekirdek
    • MRTK/Örnekler
    • MRTK/Uzantılar
    • MRTK/Sağlayıcılar
    • MRTK/SDK
    • MRTK/Hizmetler
    • MRTK/StandardAssets

    Önemli

    MRTK gölgelendiricilerinde değişiklik yapıldı ise MRTK/StandardAssets klasörünü smeden önce yerel yedekleme oluşturun

    • MRTK/Araçlar

    Önemli

    MixedRealityToolkit.Generated klasörünü veya .meta dosyasını SILMEYİN.

  4. Kitaplık klasörünü silme

    Önemli

    Unity Collab gibi bazı Unity araçları yapılandırma bilgilerini Kitaplık klasörüne kaydedebilir. Bunu sağlayan bir araç kullanıyorsanız, silmeden önce aracın veri klasörünü Kitaplık'tan kopyalayın, ardından Kitaplık yeniden üretdikten sonra geri yükleme.

  5. Projeyi Unity'de yeniden açma

Önceki adımlar uygulandıktan sonra Karma Gerçeklik Özellik Aracı'nı çalıştırın ve Karma Gerçeklik Araç Seti'nin istenen sürümünü içeri aktarın.

2.3.0'dan 2.4.0'a güncelleştirme

Klasör,API değişikliklerini yeniden adlandırıyor

2.4.0'da klasör yeniden adlandırıyor

MixedRealityToolkit klasörleri yeniden adlandırıldı ve sürüm 2.4'te ortak bir hiyerarşiye taşındı. Bir uygulama MRTK kaynaklarına sabit kodlu yollar kullanıyorsa, bunların aşağıdaki tabloya göre güncelleştirilmiş olması gerekir.

Önceki Klasör Yeni Klasör
MixedRealityToolkit MRTK/Çekirdek
MixedRealityToolkit.Examples MRTK/Örnekler
MixedRealityToolkit.Extensions MRTK/Uzantılar
MixedRealityToolkit.Providers MRTK/Sağlayıcılar
MixedRealityToolkit.SDK MRTK/SDK
MixedRealityToolkit.Services MRTK/Hizmetler
MixedRealityToolkit.Tests MRTK/Testler
MixedRealityToolkit.Tools MRTK/Araçlar

Önemli

MixedRealityToolkit.Generated, müşteri tarafından oluşturulan dosyaları içerir ve değişmeden kalır.

2.4.0'daki göz bakışı kurulumu

MRTK'nin bu sürümü, göz bakışı kurulumu için gereken adımların değişikliklerini sağlar. 'IsEyeTrackingEnabled' onay kutusu, giriş işaretçisi profilinin bakış ayarlarında bulunabilir. Bu kutuyu işaretle, varsayılan baş tabanlı bakış yerine göz tabanlı bakışı etkinleştirir.

Bu değişiklikler hakkında daha fazla bilgi ve göz izleme kurulumuyla ilgili eksiksiz yönergeler için lütfen göz izleme makalesine bakın.

2.4.0'da göz bakış işaretçisi davranışı

Göz bakışı varsayılan işaretçi davranışı, baş bakış varsayılan işaretçi davranışıyla eş olacak şekilde değiştirilmiştir. El algılandığında göz bakış işaretçisi otomatik olarak gizlenecek. "Seç" dedikten sonra göz bakış işaretçisi tekrar görünür hale gelir.

Bakış ve el kurulumları ile ilgili ayrıntılar, göz ve el makalesinde bulunabilir.

2.4.0'daki API değişiklikleri

Özel denetleyici sınıfları

Özel denetleyici sınıflarını daha önce tanımlamak SetupDefaultInteractions(Handedness) vardı. 2.4'te bu yöntem artık kullanılmıyor çünkü teslimlik parametresi denetleyici sınıfının kendi elliğiyle yedekli hale getirildi. Yeni yöntemin parametresi yoktur. Ayrıca, birçok denetleyici sınıfı bunu () ile aynı şekilde tanımladı, bu nedenle tam çağrı içine yeniden düzenleme yapıldı ve gerekli yerine isteğe bağlı AssignControllerMappings(DefaultInteractions);BaseController bir geçersiz kılma yapıldı.

Göz Bakışı özellikleri

UseEyeTrackinguygulamasından GazeProvider özelliği IMixedRealityEyeGazeProvider olarak yeniden IsEyeTrackingEnabled adlandırıldı.

Bunu daha önce yaptıysanız...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.UseEyeTracking = true;
}

Şimdi bunu yap...

if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
    gazeProvider.IsEyeTrackingEnabled = true;
}

WindowsApiChecker özellikleri

Aşağıdaki WindowsApiChecker özellikleri eski olarak işaretlendi. Lütfen IsMethodAvailable veya IsPropertyAvailableIsTypeAvailable kullanın.

  • UniversalApiContractV8_IsAvailable
  • UniversalApiContractV7_IsAvailable
  • UniversalApiContractV6_IsAvailable
  • UniversalApiContractV5_IsAvailable
  • UniversalApiContractV4_IsAvailable
  • UniversalApiContractV3_IsAvailable

Gelecek API sözleşme sürümleri için WindowsApiChecker'a özellik eklemeye plan yoktur.

GltfMeshPrimitiveAttributes salt okunur

Ayarlama için kullanılan gltf mesh temel öznitelikleri artık salt okunur. Değerleri, diziden kaldırılan değerlere bir kez ayarlanır.

Özel Düğme Simgesi Geçişi

Daha önce özel düğme simgeleri, düğmenin dörtlü işleyiciye yeni bir malzeme atamayı gerektirmektedir. Bu artık gerekli değildir ve özel simge dokularını iconSet içine taşımanızı öneririz. Mevcut özel malzemeler ve simgeler korunur. Ancak bunlar yükseltilene kadar daha az iyi olur. Proje üzerindeki tüm düğmelerin varlıklarını yeni önerilen biçime yükseltmek için ButtonConfigHelperMigrationHandler kullanın. (Karma Gerçeklik Araç Seti - > Yardımcı Programlar - > Geçiş Penceresi - Geçiş > İşleyicisi Seçimi - > Microsoft.MixedReality.Toolkit.Utilities.ButtonConfigHelperMigrationHandler)

Yükseltme penceresi iletişim penceresi

Geçiş sırasında ayarlanmış varsayılan simgede bir simge bulunamasa MixedRealityToolkit.Generated/CustomIconSets içinde özel bir simge kümesi oluşturulur. Bunun olduğunu belirten bir iletişim kutusu.

Özel simge bildirimi

2.2.0'dan 2.3.0'a güncelleştirme

2.3.0'daki API değişiklikleri

ControllerPoseSynchronizer

Private ControllerPoseSynchronizer.handedness alanı eski olarak işaretlendi. Bu, alanı sınıfının dışında görünmeyebilen uygulamalar üzerinde çok az etkilemektedir.

public ControllerPoseSynchronizer.Handedness özelliğinin ayarıcısı kaldırıldı (#7012).

Unity MSBuild için yeni bir alan

MRTK'nin bu sürümü, Unity için önceki sürümlerden MSBuild yeni bir sürüm kullanır. Proje yüklemesi sırasında, eski sürüm Unity Package Manger bildiriminde listelenmişse yapılandırma iletişim kutusu görüntülenir ve Unity için MSBuild etkinleştir seçeneği işaretli olur. Uygulama bir yükseltme işlemi gerçekleştirecek.

ScriptingUtilities

ScriptingUtilities sınıfı eski olarak işaretlendi ve Microsoft.MixedReality.Toolkit.Editor.Utilities derlemesinde ScriptUtilities ile değiştirilmiştir. Yeni sınıf önceki davranışı iyiler ve betik tanımlarını kaldırma desteği ekler.

Mevcut kod sürüm 2.3.0'da çalışmaya devam edecek ancak yeni sınıfa güncelleştirmeniz önerilir.

ShellHandRayPointer

ShellHandRayPointer sınıfının lineRendererSelected ve lineRendererNoTarget üyeleri sırasıyla lineMaterialSelected ve lineMaterialNoTarget ile değiştirilmiştir (#6863).

Derleme hatalarını çözmek için lütfen lineRendererSelected yerine lineMaterialSelected ve/veya lineRendererNoTarget yerine lineMaterialNoTarget kullanın.

Uzamsal gözlemci StartupBehavior

sınıfı üzerine kurulu uzamsal gözlemciler artık yeniden BaseSpatialObserver etkinleştirildiğinde StartupBehavior değerini kabul ediyor (BaseSpatialObserver).

Bu düzeltmeden yararlanmak için herhangi bir değişiklik gerekmez.

UX denetimi önfazları PressableButton kullanmak üzere güncelleştirildi

Aşağıdaki önfazlar artık yakın etkileşim için TouchHandler yerine PressableButton bileşenini kullanıyor (7070)

  • AnimationButton
  • Düğme
  • ButtonHoloLens1
  • ButtonHoloLens1Toggle
  • CheckBox
  • RadialSet
  • ToggleButton
  • ToggleSwitch
  • Unityuıbutton
  • UnityUICheckboxButton
  • UnityUIRadialButton
  • UnityUIToggleButton

Bu değişiklik nedeniyle uygulama kodu güncelleştirilmesi gerekebilir.

WindowsMixedRealityUtilities ad alanı

WindowsMixedRealityUtilities ad alanı Microsoft. MixedReality. Toolkit. WindowsMixedReality. Input 'dan Microsoft. MixedReality. Toolkit. WindowsMixedReality (#6863) olarak değiştirildi.

Derleme hatalarını çözmek için lütfen #using deyimlerini güncelleştirin.

2.1.0 'i 2.2.0 'ye güncelleştirme

2.2.0 'deki API değişiklikleri

IMixedRealityBoundarySystem. Contains

Bu yöntem daha önce belirli, Unity tanımlı deneysel numaralandırıcıda yer aldı. Artık Unity numaralandırıcısının aynısı olan MRTK tanımlı bir sabit listesini alır. Bu değişiklik, Unity 'nin gelecek sınır API 'Leri için MRTK hazırlamasına yardımcı olur.

MixedRealityServiceProfileAttribute

Bir profili destekleme gereksinimlerini daha iyi anlatmak için MixedRealityServiceProfileAttribute, hariç tutulan türlerin isteğe bağlı bir koleksiyonunu eklemek üzere güncelleştirilmiştir. Bu değişikliğin bir parçası olarak, ServiceType Özelliği türünden [] türüne değiştirilmiştir ve RequiredTypes olarak yeniden adlandırılmıştır.

İkinci bir özellik olan ExcludedTypes da eklenmiştir.

2.0.0 'i 2.1.0 'ye güncelleştirme

2.1.0 'deki API değişiklikleri

BaseNearInteractionTouchable

, BaseNearInteractionTouchable Yöntemi sanal olarak işaretlemek üzere değiştirilmiştir OnValidate . Genişleyen sınıflar BaseNearInteractionTouchable (örn: NearInteractionTouchableUnityUI ) bu değişikliği yansıtacak şekilde güncelleştirilmiştir.

ColliderNearInteractionTouchable

ColliderNearInteractionTouchableSınıf kullanım dışı bırakıldı. Lütfen kullanılacak kod başvurularını güncelleştirin BaseNearInteractionTouchable .

IMixedRealityMouseDeviceManager

Eklenirse

IMixedRealityMouseDeviceManager eklendi CursorSpeed ve WheelSpeed Özellikler. Bu özellikler, uygulamaların, sırasıyla imleç ve tekerlek hızının ölçeklendirileceği bir çarpan değeri belirtmesini sağlar.

Bu, bir son değişiklik ve mevcut fare Cihaz Yöneticisi uygulamalarının değiştirilmesini gerektirir.

Not

Bu değişiklik, 2.0.0 sürümü ile geriye dönük olarak uyumlu değildir.

Kullanım dışı

MouseInputProfileÖzellik eski olarak işaretlendi ve Microsoft karma gerçeklik araç seti 'nin gelecek bir sürümünden kaldırılacak. Uygulama kodunun artık bu özelliği kullanmayacak olması önerilir.

Interactable

Aşağıdaki yöntemler ve Özellikler kullanımdan kaldırılmıştır ve Microsoft karma gerçeklik araç seti 'nin gelecek bir sürümünden kaldırılacak. Kullanım önerisi, eski özniteliğinde bulunan ve konsolunda görüntülenecek olan kılavuza göre uygulama kodunu güncelleştirmelidir.

  • public bool Enabled
  • public bool FocusEnabled
  • public void ForceUpdateThemes()
  • public bool IsDisabled
  • public bool IsToggleButton
  • public int GetDimensionIndex()
  • public State[] GetStates()
  • public bool RequiresFocus
  • public void ResetBaseStates()
  • public virtual void SetCollision(bool collision)
  • public virtual void SetCustom(bool custom)
  • public void SetDimensionIndex(int index)
  • public virtual void SetDisabled(bool disabled)
  • public virtual void SetFocus(bool focus)
  • public virtual void SetGesture(bool gesture)
  • public virtual void SetGestureMax(bool gesture)
  • public virtual void SetGrab(bool grab)
  • public virtual void SetInteractive(bool interactive)
  • public virtual void SetObservation(bool observation)
  • public virtual void SetObservationTargeted(bool targeted)
  • public virtual void SetPhysicalTouch(bool touch)
  • public virtual void SetPress(bool press)
  • public virtual void SetTargeted(bool targeted)
  • public virtual void SetToggled(bool toggled)
  • public virtual void SetVisited(bool visited)
  • public virtual void SetVoiceCommand(bool voice)

NearInteractionTouchableSurface

NearInteractionTouchableSurfaceSınıfı eklenmiştir ve artık ve için temel sınıf olarak hizmet verir NearInteractionTouchableNearInteractionTouchableUnityUI .

2.1.0 'deki profil değişiklikleri

El ile izleme profili

El kafesleri ve Birleşik görselleştirmeler artık ayrı bir düzenleyici ve oynatıcı ayarlarına sahiptir. El ile izleme profili, bu görselleştirmelerin ayarlanmasına izin verecek şekilde güncelleştirilmiştir; Nothing, her şey, düzenleyici veya oynatıcı.

El görselleştirme modları

Özel el ile izleme profillerinin 2.1.0 sürümü ile düzgün şekilde çalışması için güncelleştirilmeleri gerekebilir.

Not

Bu değişiklik, 2.0.0 sürümü ile geriye dönük olarak uyumlu değildir.

Giriş simülasyonu profili

Giriş simülasyonu sistem yükseltildi ve bu, giriş simülasyonu profilinde birkaç ayarı değiştiriyor. Bazı değişiklikler otomatik olarak geçirilemez ve kullanıcılar Bu profillerin varsayılan değerleri kullandığını fark edebilir.

  1. Profildeki tüm KeyCode ve fare düğmesi bağlamaları, KeyBinding bağlama türünü (anahtar veya fare) ve gerçek bağlama kodunu (sırasıyla KeyCode veya fare düğme numarası) depolayan genel bir struct ile değiştirilmiştir. Yapının, birleştirilmiş görüntülemeye izin veren kendi denetçisi vardır ve bir "otomatik bağlama" Aracı, çok büyük bir açılan listeden seçim yapmak yerine ilgili anahtara basılarak hızlı bir şekilde anahtar bağlamaları ayarlamanıza olanak sağlar.

    • FastControlKey
    • ToggleLeftHandKey
    • ToggleRightHandKey
    • LeftHandManipulationKey
    • RightHandManipulationKey
  2. MouseLookToggle daha önce MouseLookButton numaralandırıcıda olarak eklendiğinden InputSimulationMouseButton.Focused , artık ayrı bir seçenektir. Etkinleştirildiğinde, düğme, çıkış tuşuna basılana kadar, düğmeyi serbest bırakıldıktan sonra fareyle birlikte çalışmaya devam eder.

  3. HandDepthMultiplier Giriş simülasyonu üzerinde bazı değişikliklere uyum sağlamak için varsayılan değer 0,1 ' den 0,03 ' e düşürüldü. Kaydırma sırasında kamera çok hızlı bir şekilde taşınırsa, bu değeri azaltmayı deneyin.

  4. Uygulamalı döndürme tuşları kaldırılmıştır, el döndürme artık fare tarafından da kontrol edilir. HandRotateButtonSol/sağ taraftaki düzenleme anahtarıyla (LShift/Space) birlikte basılı tutulması, el dönüşü etkinleştirir.

  5. Giriş ekseni listesine yeni bir "UpDown" ekseni sunuldu. Bu, dikey ve varsayılan olarak kamera hareketini, denetleyici tetikleme düğmelerinin yanı sıra soru-cevap anahtarlarına göre denetler.

Bu değişiklikler hakkında daha fazla bilgi için lütfen bkz. giriş Simülasyon hizmeti makalesi.

Fare veri sağlayıcı profili

Fare veri sağlayıcı profili, yeni ve özelliklerini göstermek için güncelleştirilmiştir CursorSpeedWheelSpeed . Varolan özel profiller otomatik olarak varsayılan değerlere sahip olur. Profil kaydedildiğinde, bu yeni değerler kalıcı olur.

Denetleyici eşleme profili

Bazı eksenler ve giriş türleri, özellikle OpenVR platformu etrafında 2.1.0 sürümünde güncelleştirilmiştir. Yükseltirken, lütfen Mixedrealitytoolkit- Utilities- > Update- > Controller eşleme profilleri ' ni seçtiğinizden emin olun. Bu işlem, özel olarak atanan giriş eylemlerinizi bozulmadan bırakarak, tüm özel denetleyici eşleme profillerini güncelleştirilmiş eksenler ve verilerle güncelleştirir.

RC2 'yi 2.0.0 'ye güncelleştirme

Microsoft karma gerçeklik araç setinin RC2 ve 2.0.0 sürümleri arasında, var olan projeleri etkileyebilecek değişiklikler yapılmıştır. Bu belgede bu değişiklikler ve projelerin 2.0.0 sürümüne nasıl güncelleştirilmesi açıklanmaktadır.

2.0.0 'deki API değişiklikleri

RC2 'nin yayımlanmasından itibaren, bazı API değişiklikleri var olan projeleri bozmayabilir. Aşağıdaki bölümlerde, RC2 ve 2.0.0 yayınları arasında oluşan değişiklikler açıklanır.

MixedRealityToolkit

MixedRealityToolkit nesnesindeki aşağıdaki ortak özellikler kullanım dışı bırakılmıştır.

  • RegisteredMixedRealityServices Artık kayıtlı uzantılar Hizmetleri ve veri sağlayıcılarının koleksiyonunu içermez.

Uzantı hizmetlerine erişmek için kullanın MixedRealityServiceRegistry.TryGetService<T> . Veri sağlayıcılarına erişmek için hizmet örneğini olarak atayın IMixedRealityDataProviderAccess ve kullanın GetDataProvider<T> .

MixedRealityServiceRegistryCoreServices Aşağıdaki kullanım dışı özellikler için veya kullanın

  • ActiveSystems
  • InputSystem
  • BoundarySystem
  • CameraSystem
  • SpatialAwarenessSystem
  • TeleportSystem
  • DiagnosticsSystem
  • SceneSystem

CoreServices

CoreServicesSınıfı, nesnesinde bulunan statik sistem erişimcilerinin (örn: BoundarySystem) yerini alır MixedRealityToolkit .

Önemli

MixedRealityToolkitSistem erişimcileri sürüm 2.0.0 ' de kullanımdan kaldırılmıştır ve MRTK 'in gelecek bir sürümünde kaldırılacaktır.

Aşağıdaki kod örneğinde, eski ve yeni desenler gösterilmektedir.

// Old
GameObject playAreaVisualization = MixedRealityToolkit.BoundarySystem?.GetPlayAreaVisualization();

// New
GameObject playAreaVisualization = CoreServices.BoundarySystem?.GetPlayAreaVisualization();

Yeni CoreSystem sınıfının kullanılması, uygulamayı farklı bir hizmet Kaydedicisi (örn. deneysel hizmet yöneticilerinden biri) kullanmak üzere değiştirirseniz, uygulama kodunuzun güncelleştirilmesine gerek duymayacak olmasını sağlar.

IMixedRealityRaycastProvider

IMixedRealityRaycastProvider eklenmesiyle, giriş sistem yapılandırma profili değiştirilmiştir. Özel bir profiliniz varsa, uygulamanızı çalıştırdığınızda aşağıdaki görüntüde bulunan hataları alabilirsiniz.

Raycast sağlayıcısı 1 seçiliyor

Bunları onarmak için lütfen giriş sistem profilinize bir IMixedRealityRaycastProvider örneği ekleyin.

Raycast sağlayıcısını seçme 2

Olay sistemi

  • IMixedRealityEventSystemEskı API yöntemleri Register ve Unregister kullanım dışı olarak işaretlendi. Geriye dönük uyumluluk için korunur.
  • InputSystemGlobalListener , eski olarak işaretlendi. İşlevselliği değişmedi.
  • BaseInputHandler temel sınıf ' dan ' a InputSystemGlobalListener değiştirilmiştir InputSystemGlobalHandlerListener . Bu, herhangi bir alt öğesi için bir son değişiklik değildir BaseInputHandler .

Değişikliğin arkasındaki mosyon

Eski olay sistemi API 'SI Register ve Unregister çalışma zamanında birden çok soruna neden olabilir, ana:

  • Bir bileşen genel olaylara kaydolduktan sonra Tüm türlerin genel giriş olaylarını alır.
  • Bir nesne üzerindeki bileşenlerden biri genel giriş olaylarına kaydolduktan sonra, bu nesnedeki tüm bileşenler Tüm türlerin genel giriş olaylarını alacaktır.
  • Aynı nesne üzerindeki iki bileşen genel olaylara kaydolduktan sonra bir tane çalışma zamanında devre dışıysa, ikinci bir olay genel olayları almayı bırakır.

Yeni API RegisterHandler ve UnregisterHandler :

  • , Hangi giriş olaylarının küresel olarak ele alındığı ve odaklanmış tabanlı olması gereken açık ve ayrıntılı bir denetim sağlar.
  • Aynı nesne üzerindeki birden çok bileşene, genel olayları birbirinden bağımsız olarak dinlemek için izin verir.

Geçiş yapma

  • Register/Unregister API 'yi doğrudan daha önce çağırdıysanız, bu çağrıları çağrısı ile değiştirin RegisterHandler/UnregisterHandler . Genel parametreler olarak uyguladığınız işleyici arabirimlerini kullanın. Birden çok arabirim uygularsanız ve bunlardan bazıları küresel giriş olaylarını dinlerken, RegisterHandler birden çok kez çağrı yapın.
  • Devraldıysanız InputSystemGlobalListener , devralım ' ı ' a değiştirin InputSystemGlobalHandlerListener . RegisterHandlersVe UnregisterHandlers soyut yöntemleri uygulayın. Uygulama çağrısında inputSystem.RegisterHandler (), inputSystem.UnregisterHandler genel olaylarını dinlemek istediğiniz tüm işleyici arabirimlerine kaydolun.
  • Devraldıysanız BaseInputHandler , uygulayın RegisterHandlers ve UnregisterHandlers soyut Yöntemler (ile aynı InputSystemGlobalListener ).

Geçiş örnekleri

// Old
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.Register(gameObject);
    }

    private void OnDisable()
    {
        InputSystem?.Unregister(gameObject);
    }
}

// Migrated
class SampleHandler : MonoBehaviour, IMixedRealitySourceStateHandler, IMixedRealityHandJointHandler
{
    private void OnEnable()
    {
        InputSystem?.RegisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.RegisterHandler<IMixedRealityHandJointHandler>(this);
    }

    private void OnDisable()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySourceStateHandler>(this);
        InputSystem?.UnregisterHandler<IMixedRealityHandJointHandler>(this);
    }
}
// Old
class SampleHandler2 : InputSystemGlobalListener, IMixedRealitySpeechHandler
{
}

// Migrated
class SampleHandler2 : InputSystemGlobalHandlerListener, IMixedRealitySpeechHandler
{
    private void RegisterHandlers()
    {
        InputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
    }

    private void UnregisterHandlers()
    {
        InputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
    }
}

// Alternative migration
class SampleHandler2 : MonoBehaviour, IMixedRealitySpeechHandler
{
    private void OnEnable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }

    private void OnDisable()
    {
        IMixedRealityInputSystem inputSystem;
        if (MixedRealityServiceRegistry.TryGetService<IMixedRealityInputSystem>(out inputSystem))
        {
            inputSystem?.UnregisterHandler<IMixedRealitySpeechHandler>(this);
        }
    }
}

Uzamsal tanıma

IMixedRealitySpatialAwarenessSystem ve IMixedRealitySpatialAwarenessObserver arabirimleri, aşağıda açıklandığı gibi birden fazla Son değişiklik gerçekleştirmiş.

Değişiklikler

Aşağıdaki yöntemler, kullanımlarını daha iyi betimleyen şekilde yeniden adlandırıldı.

  • IMixedRealitySpatialAwarenessSystem.CreateSpatialObjectParent , IMixedRealitySpatialAwarenessSystem.CreateSpatialAwarenessObservationParent kullanımını açıklığa kavuşturacak şekilde yeniden adlandırıldı.

Üzerine

Müşteri geri bildirimlerine göre, daha önce gözlemlenen uzamsal tanıma verilerinin kolayca kaldırılmasına yönelik destek eklenmiştir.

  • IMixedRealitySpatialAwarenessSystem.ClearObservations()
  • IMixedRealitySpatialAwarenessSystem.ClearObservations<T>(string name)
  • IMixedRealitySpatialAwarenessObserver.ClearObservations()

Lehcılar

Bazı çözücü bileşenleri ve SolverHandler Yöneticisi sınıfı, çeşitli hataları ve daha sezgisel kullanımı giderecek şekilde değiştirilmiştir.

SolverHandler

  • Sınıf bundan böyle genişletiliyor ControllerFinder
  • TrackedObjectToReference Public özelliği kullanım dışı bırakıldı ve olarak yeniden adlandırıldı TrackedTargetType
  • TrackedObjectType sol & doğru denetleyici değerlerini kullanımdan kaldır. Bunun yerine MotionControllerHandJoint , TrackedHandedness izlemeyi sol veya sağ denetleyiciye sınırlamak için veya değerlerini kullanın ve yeni özelliği güncelleştirin

Inbetween

  • TrackedObjectForSecondTransform Public özelliği kullanım dışı bırakıldı ve olarak yeniden adlandırıldı SecondTrackedObjectType
  • AttachSecondTransformToNewTrackedObject() kaldırıldı. Çözücü 'yi güncelleştirmek için genel özellikleri değiştirin (ör. SecondTrackedObjectType )

Surfacemagnetisd

  • MaxDistance Public özelliği kullanım dışı bırakıldı ve olarak yeniden adlandırıldı MaxRaycastDistance
  • CloseDistance Public özelliği kullanım dışı bırakıldı ve olarak yeniden adlandırıldı ClosestDistance
  • İçin varsayılan değer RaycastDirectionMode artık, TrackedTargetForward izlenen hedefin yönündeki raya dönüştürmesinin ileri
  • OrientationModesabit listesi değerleri, Vertical ve FullTrackedTarget sırasıyla olarak yeniden adlandırıldı SurfaceNormal
  • KeepOrientationVertical ortak özellik, ilişkili GameObject 'in yönünün dikey olmaya devam edilip edilmeyeceğini denetlemek için eklenmiştir

Düğmeler

  • PressableButton Şimdi DistanceSpaceMode özelliği Local Varsayılan olarak olarak ayarlanmıştır. Bu, düğmelerin hala önceden çözümlenemez olarak ölçeklendirilmesine olanak tanır

Sphere kırpması

Clienppingsphere arabirimi, Clienppingbox ve Clippingdüzlemi içinde bulunan API 'Leri yansıtacak şekilde değiştirilmiştir.

Clienppingsphere 'ın Radius özelliği artık dönüştürme ölçeğine göre örtülü olarak hesaplanır. Geliştiricilerin, Inspector 'da Clienppingsphere yarıçapını belirtmesi gerekir. Yarıçapı değiştirmek istiyorsanız, genellikle yaptığınız şekilde dönüşümün dönüştürme ölçeğini güncelleştirmeniz yeterlidir.

NearInteractionTouchable ve PokePointer

  • NearInteractionTouchable, Unity Kullanıcı arabirimi tuvalinden daha fazla dokunmaz. NearInteractionTouchableUnityUI sınıfı, şimdi Unity Kullanıcı arabirimi Touchables için kullanılmalıdır.
  • ColliderNearInteractionTouchable, Touchables hariç her touchable için, 'e dayalı yeni temel sınıftır.
  • BaseNearInteractionTouchable. DistFront taşınmış ve PokePointer olarak yeniden adlandırıldı. TouchableDistance bu, PokePointer 'ın Touchables ile etkileşime girebileceği mesafeyi ve bu uzaklığı içerir. Daha önce her touchable kendi maksimum etkileşim uzaklığına sahipti, ancak artık bu, daha iyi iyileştirmeyi sağlayan PokePointer içinde tanımlandı.
  • BaseNearInteractionTouchable. DistBack, PokeThreshold olarak yeniden adlandırıldı. Bu, PokeThreshold 'nın DebounceThreshold karşılığı olduğunu temizler. PokeThreshold geçildiğinde bir touchable etkinleştirilir ve DebounceThreshold geçildiğinde serbest bırakılır.

ReadOnlyAttribute

Microsoft.MixedReality.ToolkitAd alanı, ve ' ye ReadOnlyAttribute eklenmiştir BeginReadOnlyGroupAttributeEndReadOnlyGroupAttribute .

PointerClickHandler

PointerClickHandlerSınıf kullanım dışı bırakıldı. PointerHandlerBunun yerine kullanılması gerekir, aynı işlevselliği sağlar.

HoloLens click desteği

HoloLens ker 'ın denetleyici eşlemelerinin, bir unelli olarak değiştirilmelerinden kaçınılmıyor WindowsMixedRealityControllerWindowsMixedRealityGGVHand . Bunu hesaba eklemek için, ControllerMapping profilinizi ilk açışınızda otomatik güncelleştirici çalışır. Bu tek seferlik geçiş adımını tetiklemek için lütfen 2.0.0 sürümüne yükselttikten sonra tüm özel profilleri en az bir kez açın.

Interactablehighlight

InteractableHighlightSınıf kullanım dışı bırakıldı. InteractableOnFocusFocusInteractableStates Bunun yerine sınıf ve varlık kullanılmalıdır. İçin yeni bir varlık oluşturmak için ThemeInteractableOnFocus Proje penceresinde sağ tıklayın ve Theme>InteractableOnFocus>>>>oluştur ' u seçin.

Handınteractionpanzoom

HandInteractionPanZoom Giriş bileşeni olmadığı için UI ad alanına taşındı. HandPanEventData aynı zamanda bu ad alanına taşınmış ve diğer UI olay verileriyle uyumlu olacak şekilde basitleştirildi.

2.0.0 içindeki derleme adı değişiklikleri

2.0.0 sürümünde, tüm resmi karma gerçeklik araç seti derleme adları ve ilişkili derleme tanımı (. asmdef) dosyaları aşağıdaki düzene uyacak şekilde güncelleştirilmiştir.

Microsoft.MixedReality.Toolkit[.<name>]

Bazı örneklerde, içeriklerinin daha iyi Unity oluşturmak için birden çok derleme birleştirildi. Projeniz özel. asmdef dosyaları kullanıyorsa, bunların güncelleştirilmesi gerekebilir.

Aşağıdaki tablolarda, RC2. asmdef dosya adlarının 2.0.0 sürümüne nasıl eşlenme şekli açıklanır. Tüm derleme adları. asmdef dosya adıyla eşleşir.

MixedRealityToolkit

RC2 2.0.0
MixedRealityToolkit. asmdef Microsoft. MixedReality. Toolkit. asmdef
MixedRealityToolkit. Core. BuildAndDeploy. asmdef Microsoft. MixedReality. Toolkit. Editor. BuildAndDeploy. asmdef
MixedRealityToolkit.Core.Definitions.Utilities.Editor.asmdef Kaldırıldı, Microsoft.MixedReality.Toolkit.Editor.Utilities.asmdef kullanın
MixedRealityToolkit.Core.Extensions.EditorClassExtensions.asmdef Microsoft.MixedReality.Toolkit.Editor.ClassExtensions.asmdef
MixedRealityToolkit.Core.Inspectors.asmdef Microsoft.MixedReality.Toolkit.Editor.Inspectors.asmdef
MixedRealityToolkit.Core.Inspectors.ServiceInspectors.asmdef Microsoft.MixedReality.Toolkit.Editor.ServiceInspectors.asmdef
MixedRealityToolkit.Core.UtilitiesAsync.asmdef Microsoft.MixedReality.Toolkit.Async.asmdef
MixedRealityToolkit.Core.Utilities.Editor.asmdef Microsoft.MixedReality.Toolkit.Editor.Utilities.asmdef
MixedRealityToolkit.Utilities.Gltf.asmdef Microsoft.MixedReality.Toolkit.Gltf.asmdef
MixedRealityToolkit.Utilities.Gltf.Importers.asmdef Microsoft.MixedReality.Toolkit.Gltf.Importers.asmdef

MixedRealityToolkit.Providers

RC2 2.0.0
MixedRealityToolkit.Providers.OpenVR.asmdef Microsoft.MixedReality.Toolkit.Providers.OpenVR.asmdef
MixedRealityToolkit.Providers.WindowsMixedReality.asmdef Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.asmdef
MixedRealityToolkit.Providers.WindowsVoiceInput.asmdef Microsoft.MixedReality.Toolkit.Providers.WindowsVoiceInput.asmdef

MixedRealityToolkit.Services

RC2 2.0.0
MixedRealityToolkit.Services.BoundarySystem.asmdef Microsoft.MixedReality.Toolkit.Services.BoundarySystem.asmdef
MixedRealityToolkit.Services.CameraSystem.asmdef Microsoft.MixedReality.Toolkit.Services.CameraSystem.asmdef
MixedRealityToolkit.Services.DiagnosticsSystem.asmdef Microsoft.MixedReality.Toolkit.Services.DiagnosticsSystem.asmdef
MixedRealityToolkit.Services.InputSimulation.asmdef Microsoft.MixedReality.Toolkit.Services.InputSimulation.asmdef
MixedRealityToolkit.Services.InputSimulation.Editor.asmdef Microsoft.MixedReality.Toolkit.Services.InputSimulation.Editor.asmdef
MixedRealityToolkit.Services.InputSystem.asmdef Microsoft.MixedReality.Toolkit.Services.InputSystem.asmdef
MixedRealityToolkit.Services.Inspectors.asmdef Microsoft.MixedReality.Toolkit.Services.InputSystem.Editor.asmdef
MixedRealityToolkit.Services.SceneSystem.asmdef Microsoft.MixedReality.Toolkit.Services.SceneSystem.asmdef
MixedRealityToolkit.Services.SpatialAwarenessSystem.asmdef Microsoft.MixedReality.Toolkit.Services.SpatialAwarenessSystem.asmdef
MixedRealityToolkit.Services.TeleportSystem.asmdef Microsoft.MixedReality.Toolkit.Services.TeleportSystem.asmdef

MixedRealityToolkit.SDK

RC2 2.0.0
MixedRealityToolkit.SDK.asmdef Microsoft.MixedReality.Toolkit.SDK.asmdef
MixedRealityToolkit.SDK.Inspectors.asmdef Microsoft.MixedReality.Toolkit.SDK.Inspectors.asmdef

MixedRealityToolkit.Examples

RC2 2.0.0
MixedRealityToolkit.Examples.asmdef Microsoft.MixedReality.Toolkit.Examples.asmdef
MixedRealityToolkit.Examples.Demos.Gltf.asmdef Microsoft.MixedReality.Toolkit.Demos.Gltf.asmdef
MixedRealityToolkit.Examples.Demos.StandardShader.Inspectors.asmdef Microsoft.MixedReality.Toolkit.Demos.StandardShader.Inspectors.asmdef
MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.asmdef Microsoft.MixedReality.Toolkit.Demos.InspectorFields.asmdef
MixedRealityToolkit.Examples.Demos.Utilities.InspectorFields.Inspectors.asmdef Microsoft.MixedReality.Toolkit.Demos.InspectorFields.Inspectors.asmdef
MixedRealityToolkit.Examples.Demos.UX.Interactables.asmdef Microsoft.MixedReality.Toolkit.Demos.UX.Interactables.asmdef