Önceki sürümlerden güncelleştirme — MRTK2
- MRTK'nin yeni sürümüne yükseltme
- 2.3.0 - 2.4.0
- 2.2.0 - 2.3.0
- 2.1.0 - 2.2.0
- 2.0.0 - 2.1.0
- RC2 - 2.0.0
Geçerli sürümü bulma
Şu anda hangi MRTK sürümünü kullandığınızı öğrenmek için şu yönergeleri izleyin:
- MRTK projenizi Unity'de açma
- Proje pencerenizde "MixedRealityToolkit" klasörüne gidin
- "Sürüm" adlı dosyayı açın
Yukarıdaki dosya ve klasör yoksa MRTK'nin daha yeni bir sürümünü kullanıyorsunuz demektir. Bu durumda aşağıdakileri deneyin:
- "Karma Gerçeklik Toolkit Foundation" klasörüne gidin
- Unity'de önizlemeyi görmek veya bir metin düzenleyicisiyle açmak için "package.json" dosyasına tıklayın
- "version:" sözcüğünü içeren satırı arayın
MRTK'nin yeni sürümüne yükseltme
Kullanım dışı bırakılan bileşenlerden otomatik düzeltme ve yükseltme yapmak ve hataya neden olan değişikliklere uyum sağlamak için MRTK güncelleştirmesini aldıktan sonra geçiş aracını çalıştırmanız kesinlikle önerilir. Geçiş aracı, Araçlar paketinin bir parçasıdır.
Aşağıdaki yönergelerde 2.4.0 - 2.5.0 yükseltme yolu açıklanmaktadır. Projeniz 2.3.0 veya daha önceki bir sürümdeyse, yükseltme yolunu anlamak için sürümler arasındaki değişiklikleri okuyun veya sürüme göre yükseltme yapmak için önceki sürümün yönergelerini okuyun.
Karma Gerçeklik Özellik Aracı
MRTK'yi daha yeni bir MRTK sürümüne yükseltmenin en kolay yolu, en son paketleri indirmek ve bunları doğrudan Unity projenize yüklemek için Karma Gerçeklik Özellik Aracı'nı kullanmaktır.
Proje daha önce Unity varlığı (.unitypackage) dosyalarını kullandıysa lütfen bu yönergelere bakın.
Unity varlığı (.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,
- Yükseltme adımlarında herhangi bir noktada herhangi bir takozla karşılaşırsanız geçerli projenizin bir kopyasını kaydedin.
- Unity'i kapatma
- Varlıklar klasörünün içinde, aşağıdaki MRTK klasörlerini ve .meta dosyalarını silin (projede listelenen tüm klasörler olmayabilir)
- MRTK/Core
- 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ıysa MRTK/StandardAssets klasörünü silmeden önce yerel bir yedekleme oluşturun
- MRTK/Araçlar
Önemli
MixedRealityToolkit.Generated klasörünü veya .meta dosyasını SİlMEYİN.
- Kitaplık klasörünü silme
Önemli
Unity Collab gibi bazı Unity araçları, yapılandırma bilgilerini Kitaplık klasörüne kaydeder. Bunu kullanan bir araç kullanıyorsanız, silmeden önce aracın veri klasörünü Kitaplık'tan kopyalayın, ardından Kitaplık yeniden üretildikten sonra geri yükleyin.
- Unity'de projeyi yeniden açma
- Yeni unity paketlerini içeri aktarma
- Foundation - Önce bu paketi içeri aktar
- Araçlar
- (İsteğe bağlı) Uzantı -ları
Not
Ek uzantılar yüklenmişse, bunların yeniden içeri aktarılması gerekebilir.
- (İsteğe bağlı) Örnekler
- Unity'yi kapatın ve Kitaplık klasörünü silin (önce aşağıdaki notu okuyun!). Bu adım Unity'yi varlık veritabanını yenilemeye ve mevcut özel profilleri uzlaştırmaya zorlamak için gereklidir.
- Unity'yi başlatın ve projedeki her sahne için
- MixedRealityToolkit ve MixedRealityPlayspace'i varsa hiyerarşiden silin. Bu işlem ana kamerayı siler ancak sonraki adımda yeniden oluşturulur. Ana kameranın herhangi bir özelliği el ile değiştirildiyse, yeni kamera oluşturulduktan sonra bunların el ile yeniden uygulanması gerekir.
- MixedRealityToolkit -> Görünüme 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 tüm özel denetleyici eşleme profillerini güncelleştirilmiş eksenler ve verilerle güncelleştirir ve özel olarak atanan giriş eylemlerinizi olduğu gibi bırakır
- Tüm kodunuzun en son sürüme güncelleştirildiğinden emin olmak için geçiş aracını çalıştırın ve aracı Tam Proje'de çalıştırın.
Geçiş penceresi, her birinin kendi başına çalıştırılması 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 Proje" düğmesine tıklayın.
- "Geçiş için tam proje ekle" düğmesine tıklayın (bu işlem, geçirilecek nesneler için projenin tamamını tarar).
- Geçirilebilir nesneler bulunduysa etkinleştirilmesi gereken "Geçir" düğmesine tıklayın.
- Açılan listede yer alan geçiş işleyicilerinin her biri için önceki üç adımı yineleyin. (Gelecek bir sürümde bu geçiş işlemini basitleştirmek için yapılabilecek işleri kapsayan bu soruna bakın)
Unity varlık dosyalarından Karma Gerçeklik Özellik Aracı'na geçme
Unity varlık dosyalarından Karma Gerçeklik Özellik Aracı paketlerine geçiş yapmak birçok avantaj sağlar:
- 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 geçmek için tek seferlik bir el ile adım kümesi gerekir.
- Geçerli projenizin bir kopyasını kaydedin.
- Unity'i kapatma
- Varlıklar klasörünün içinde, aşağıdaki MRTK klasörlerini ve .meta dosyalarını silin (projede listelenen tüm klasörler olmayabilir)
- MRTK/Core
- 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ıysa MRTK/StandardAssets klasörünü silmeden önce yerel bir yedekleme oluşturun
- MRTK/Araçlar
Önemli
MixedRealityToolkit.Generated klasörünü veya .meta dosyasını SİlMEYİN.
- Kitaplık klasörünü silme
Önemli
Unity Collab gibi bazı Unity araçları, yapılandırma bilgilerini Kitaplık klasörüne kaydeder. Bunu kullanan bir araç kullanıyorsanız, silmeden önce aracın veri klasörünü Kitaplık'tan kopyalayın, ardından Kitaplık yeniden üretildikten sonra geri yükleyin.
- Projeyi Unity'de yeniden açma
Önceki adımlar gerçekleştirildikten 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'ı 2.4.0'a güncelleştirme
Klasör API değişiklikleriniyeniden adlandırır
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ı için sabit kodlanmış yollar kullanıyorsa, aşağıdaki tabloya göre güncelleştirilmeleri gerekir.
Önceki Klasör | Yeni Klasör |
---|---|
MixedRealityToolkit | MRTK/Core |
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
müşteri MixedRealityToolkit.Generated
tarafından oluşturulan dosyaları içerir ve değişmeden kalır.
2.4.0'da göz bakışı kurulumu
MRTK'nin bu sürümü göz bakışı kurulumu için gereken adımları değiştirir. 'IsEyeTrackingEnabled' onay kutusu giriş işaretçisi profilinin bakış ayarlarında bulunabilir. Bu kutu işaretlenirse göz tabanlı bakış etkinleştirilir, ardından varsayılan baş tabanlı bakış etkinleştirilir.
Bu değişiklikler hakkında daha fazla bilgi edinmek ve göz izleme kurulumuyla ilgili yönergeleri tamamlamak için 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şleşecek şekilde değiştirildi. El algılandıktan sonra göz bakışı işaretçisi otomatik olarak gizlenecektir. "Seç" dedikten sonra göz bakışı işaretçisi yeniden görünür hale gelir.
Bakış ve el kurulumlarıyla ilgili ayrıntılar göz ve eller makalesinde bulunabilir.
2.4.0'daki API değişiklikleri
Özel denetleyici sınıfları
Özel denetleyici sınıflarının daha önce tanımlaması SetupDefaultInteractions(Handedness)
gerekiyordu. Bu yöntem, 2.4'te kullanımdan kaldırılmıştır, çünkü handedness parametresi denetleyici sınıfının kendi teslim süresiyle yedeklidir. Yeni yöntemin parametresi yok. Buna ek olarak, birçok denetleyici sınıfı bunu aynı şekilde tanımlamıştır (AssignControllerMappings(DefaultInteractions);
), bu nedenle tam çağrı olarak yeniden düzenlenmiş BaseController
ve gerekli yerine isteğe bağlı bir geçersiz kılma yapılmıştır.
Göz Bakışı özellikleri
UseEyeTracking
uygulamasından IMixedRealityEyeGazeProvider
özelliği GazeProvider
olarak IsEyeTrackingEnabled
yeniden adlandırıldı.
Bunu daha önce yaptıysanız...
if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
gazeProvider.UseEyeTracking = true;
}
Bunu şimdi yapın...
if (CoreServices.InputSystem.GazeProvider is GazeProvider gazeProvider)
{
gazeProvider.IsEyeTrackingEnabled = true;
}
WindowsApiChecker özellikleri
Aşağıdaki WindowsApiChecker özellikleri eski olarak işaretlendi. Lütfen veya IsPropertyAvailable
IsTypeAvailable
kullanınIsMethodAvailable
.
- UniversalApiContractV8_IsAvailable
- UniversalApiContractV7_IsAvailable
- UniversalApiContractV6_IsAvailable
- UniversalApiContractV5_IsAvailable
- UniversalApiContractV4_IsAvailable
- UniversalApiContractV3_IsAvailable
Gelecekteki API sözleşmesi sürümleri için WindowsApiChecker'a özellik ekleme planı yoktur.
GltfMeshPrimitiveAttributes salt okunur
Önceden ayarlanabilir olan gltf mesh temel öznitelikleri artık salt okunur. Seri durumdan çıkarıldığında değerleri bir kez ayarlanır.
Özel Düğme Simgesi Geçişi
Önceden özel düğme simgelerinin düğmenin dörtlü işleyicisine yeni bir malzeme ataması gerekiyordu. Bu artık gerekli değildir ve özel simge dokularını iconSet'e taşımanızı öneririz. Mevcut özel malzemeler ve simgeler korunur. Ancak yükseltilene kadar daha az uygun olacaktır. Projedeki tüm düğmelerin varlıklarını önerilen yeni 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)
Geçiş sırasında varsayılan simge kümesinde bir simge bulunmazsa, MixedRealityToolkit.Generated/CustomIconSets içinde özel bir simge kümesi oluşturulur. Bunun gerçekleştiğini belirten bir iletişim kutusu görüntülenir.
2.2.0'ı 2.3.0'a güncelleştirme
2.3.0'daki API değişiklikleri
ControllerPoseSynchronizer
Private ControllerPoseSynchronizer.handedness alanı eski olarak işaretlendi. Alan sınıfının dışında görünmediğinden, bu durum uygulamalar üzerinde en az etkiye sahip olmalıdır.
Public ControllerPoseSynchronizer.Handedness özelliğinin ayarlayıcısı kaldırıldı (#7012).
Unity için MSBuild
MRTK'nin bu sürümü, Unity için MSBuild'in önceki sürümlerden daha yeni bir sürümünü kullanır. Proje yüklemesi sırasında, eski sürüm Unity Paket Yöneticisi bildiriminde listeleniyorsa yapılandırma iletişim kutusu görüntülenir ve Unity için MSBuild'i Etkinleştir seçeneği işaretli olur. Uygulama bir yükseltme gerçekleştirir.
ScriptingUtilities
ScriptingUtilities sınıfı eski olarak işaretlendi ve Microsoft.MixedReality.Toolkit.Editor.Utilities derlemesinde ScriptUtilities ile değiştirildi. 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 olsa da, yeni sınıfa güncelleştirilmiş olması önerilir.
ShellHandRayPointer
ShellHandRayPointer sınıfının lineRendererSelected ve lineRendererNoTarget üyeleri sırasıyla lineMaterialSelected ve lineMaterialNoTarget ile değiştirildi (#6863).
Derleme hatalarını çözmek için lineRendererSelected değerini lineMaterialSelected ve/veya lineRendererNoTarget ile lineMaterialNoTarget olarak değiştirin.
Uzamsal gözlemci StartupBehavior
Sınıf üzerinde BaseSpatialObserver
oluşturulan uzamsal gözlemciler artık yeniden etkinleştirildiğinde StartupBehavior değerini kabul eder (#6919).
Bu düzeltmeden yararlanmak için değişiklik yapılması gerekmez.
UX denetimi ön güncelleştirmeleri PressableButton kullanacak şekilde güncelleştirildi
Aşağıdaki önkoşullar 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
- UnityUIButton
- UnityUICheckboxButton
- UnityUIRadialButton
- UnityUIToggleButton
Bu değişiklik nedeniyle uygulama kodunun güncelleştirilmesi gerekebilir.
WindowsMixedRealityUtilities ad alanı
WindowsMixedRealityUtilities ad alanı Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input'tan 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'ı 2.2.0'a güncelleştirme
2.2.0'daki API değişiklikleri
IMixedRealityBoundarySystem.Contains
Bu yöntem daha önce Unity tanımlı belirli bir deneysel sabit listesinde yer alıyordu. Şimdi Unity sabit listesiyle aynı olan MRTK tanımlı bir sabit listesi alır. Bu değişiklik, MRTK'nin Unity'nin gelecekteki sınır API'leri için hazırlanmasına yardımcı olur.
MixedRealityServiceProfileAttribute
Bir profili destekleme gereksinimlerini daha iyi açıklamak için, MixedRealityServiceProfileAttribute isteğe bağlı bir dışlanan türler koleksiyonu eklemek üzere güncelleştirildi. Bu değişikliğin bir parçası olarak, ServiceType özelliği Tür[] olarak değiştirildi ve RequiredTypes olarak yeniden adlandırıldı.
ExcludedTypes adlı ikinci bir özellik de eklendi.
2.0.0'ı 2.1.0'a güncelleştirme
2.1.0'daki API değişiklikleri
BaseNearInteractionTouchable
BaseNearInteractionTouchable
yöntemi sanal olarak işaretlenmek OnValidate
üzere değiştirildi. Genişleten BaseNearInteractionTouchable
sınıflar (örn: NearInteractionTouchableUnityUI
) bu değişikliği yansıtacak şekilde güncelleştirildi.
ColliderNearInteractionTouchable
ColliderNearInteractionTouchable
Sınıfı kullanım dışı bırakıldı. Kullanmak için BaseNearInteractionTouchable
kod başvurularını güncelleştirin.
IMixedRealityMouseDeviceManager
Eklendi
IMixedRealityMouseDeviceManager
CursorSpeed
eklendi ve WheelSpeed
özellikler eklendi. Bu özellikler, uygulamaların sırasıyla imlecin ve tekerleğin hızının ölçeklendirileceği bir çarpan değeri belirtmesine olanak tanır.
Bu hataya neden olan bir değişikliktir ve mevcut fare cihaz yöneticisi uygulamalarının değiştirilmesini gerektirir.
Not
Bu değişiklik sürüm 2.0.0 ile geriye dönük olarak uyumlu değildir.
Kullanım Dışı
MouseInputProfile
Özelliği kullanım dışı olarak işaretlendi ve Microsoft Karma Gerçeklik Toolkit'in gelecekteki bir sürümünden kaldırılacak. Uygulama kodunun artık bu özelliği kullanmamış olması önerilir.
Etkileşim kurulabilir
Aşağıdaki yöntemler ve özellikler kullanım dışı bırakılmıştır ve Microsoft Karma Gerçeklik Toolkit'in gelecekteki bir sürümünden kaldırılacaktır. Öneri, kullanımdan kaldırılan özniteliğinde yer alan ve konsolunda görüntülenen yönergelere göre uygulama kodunu güncelleştirmektir.
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
NearInteractionTouchableSurface
sınıfı eklendi ve artık ve NearInteractionTouchableUnityUI
için NearInteractionTouchable
temel sınıf görevi görür.
2.1.0'daki profil değişiklikleri
El izleme profili
El örgü ve eklem görselleştirmeleri artık ayrı bir düzenleyici ve oynatıcı ayarlarına sahiptir. El izleme profili, bu görselleştirmelerin ayarlanmasına izin verecek şekilde güncelleştirildi; Hiçbir şey, Her Şey, Düzenleyici veya Oyuncu.
Özel el izleme profillerinin sürüm 2.1.0 ile düzgün çalışması için güncelleştirilmiş olması gerekebilir.
Not
Bu değişiklik sürüm 2.0.0 ile geriye dönük olarak uyumlu değildir.
Giriş benzetimi profili
Giriş benzetimi sistemi yükseltildi ve bu da giriş simülasyonu profilindeki birkaç ayarı değiştiriyor. Bazı değişiklikler otomatik olarak geçirilemiyor ve kullanıcılar profillerin varsayılan değerleri kullandığını fark edebilir.
Profildeki tüm KeyCode ve fare düğmesi bağlamaları, bağlama türünü (tuş veya fare) ve gerçek bağlama kodunu (sırasıyla KeyCode veya fare düğmesi numarası) depolayan genel
KeyBinding
bir yapıyla değiştirilmiştir. Yapı, birleşik ekrana izin veren ve büyük bir açılan listeden seçim yapmak yerine ilgili tuşa basarak hızlı bir şekilde anahtar bağlamalarını ayarlamak için bir "otomatik bağlama" aracı sunan kendi denetçisine sahiptir.- FastControlKey
- ToggleLeftHandKey
- ToggleRightHandKey
- LeftHandManipulationKey
- RightHandManipulationKey
MouseLookToggle
daha önce sabit listesi içindeMouseLookButton
olarakInputSimulationMouseButton.Focused
yer aldı, artık ayrı bir seçenektir. Etkinleştirildiğinde, çıkış tuşuna basılana kadar düğmeyi bıraktıktan sonra kamera fareyle dönmeye devam eder.HandDepthMultiplier
giriş simülasyonundaki bazı değişiklikleri karşılamak için varsayılan değer 0,1'den 0,03'e düşürülmüştür. Kamera kaydırırken çok hızlı hareket ediyorsa bu değeri düşürmeyi deneyin.Ellerin döndürülmesinin tuşları kaldırıldı, el döndürme artık fare tarafından da kontrol edilir. (Ctrl) tuşunun sol/sağ el işleme tuşuyla (LShift/Boşluk) birlikte tutulması
HandRotateButton
el döndürmeyi etkinleştirir.Giriş ekseni listesine yeni bir "UpDown" ekseni eklendi. Bu, dikeydeki kamera hareketini denetler ve varsayılan olarak Q/E tuşlarının yanı sıra denetleyici tetikleyici düğmelerine de sahiptir.
Bu değişiklikler hakkında daha fazla bilgi için lütfen giriş benzetimi hizmeti makalesine bakın.
Fare veri sağlayıcısı profili
Fare veri sağlayıcısı profili, yeni CursorSpeed
ve WheelSpeed
özellikleri kullanıma sunma amacıyla güncelleştirildi. Mevcut özel profillerde otomatik olarak varsayılan değerler sağlanır. Profil kaydedildiğinde, bu yeni değerler kalıcı hale gelecek.
Denetleyici eşleme profili
Özellikle OpenVR platformu çevresinde bazı eksenler ve giriş türleri 2.1.0'da güncelleştirildi. Yükseltme sırasında MixedRealityToolkit -> Yardımcı Programlar -> Güncelleştirme -> Denetleyici Eşleme Profilleri'ni seçtiğinizden emin olun. Bu, tüm özel Denetleyici Eşleme Profillerini güncelleştirilmiş eksenler ve verilerle güncelleştirirken, özel olarak atanan giriş eylemlerinizi olduğu gibi bırakır.
RC2'yi 2.0.0'a güncelleştirme
Microsoft Karma Gerçeklik Toolkit'in RC2 ve 2.0.0 sürümleri arasında, mevcut projeleri etkileyebilecek değişiklikler yapıldı. Bu belgede bu değişiklikler ve projelerin 2.0.0 sürümüne nasıl güncelleştirildiği açıklanır.
2.0.0'daki API değişiklikleri
RC2 sürümünden bu yana, var olan projeleri bozabilecek bazı API değişiklikleri de dahil olmak üzere bir dizi api değişikliği yapılmıştır. Aşağıdaki bölümlerde RC2 ve 2.0.0 sürümleri arasında gerçekleşen değişiklikler açıklanmaktadır.
MixedRealityToolkit
MixedRealityToolkit nesnesinde aşağıdaki genel özellikler kullanım dışı bırakıldı.
RegisteredMixedRealityServices
artık kayıtlı uzantı hizmetlerinin 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 öğesine IMixedRealityDataProviderAccess
yayınlayıp kullanın GetDataProvider<T>
.
Aşağıdaki MixedRealityServiceRegistry
kullanım dışı özellikler için veya CoreServices
kullanın
ActiveSystems
InputSystem
BoundarySystem
CameraSystem
SpatialAwarenessSystem
TeleportSystem
DiagnosticsSystem
SceneSystem
CoreServices
CoreServices
sınıfı, nesnede bulunan statik sistem erişimcilerinin (ör. BoundarySystem) yerini alırMixedRealityToolkit
.
Önemli
Sistem MixedRealityToolkit
erişimcileri sürüm 2.0.0'da kullanım dışı bırakılmıştır ve MRTK'nin gelecek bir sürümünde kaldırılacaktır.
Aşağıdaki kod örneğinde eski ve yeni desen gösterilmektedir.
// Old
GameObject playAreaVisualization = MixedRealityToolkit.BoundarySystem?.GetPlayAreaVisualization();
// New
GameObject playAreaVisualization = CoreServices.BoundarySystem?.GetPlayAreaVisualization();
Yeni CoreSystem sınıfını kullanmak, uygulamayı farklı bir hizmet kayıt şirketi (örneğin, deneysel hizmet yöneticilerinden biri) kullanacak şekilde değiştirirseniz uygulama kodunuzun güncelleştirilmesinin gerekmemesini sağlar.
IMixedRealityRaycastProvider
IMixedRealityRaycastProvider'ın eklenmesiyle, giriş sistemi yapılandırma profili değiştirildi. Özel bir profiliniz varsa, uygulamanızı çalıştırdığınızda aşağıdaki görüntüdeki hataları alabilirsiniz.
Bunları düzeltmek için lütfen giriş sistemi profilinize bir IMixedRealityRaycastProvider örneği ekleyin.
Olay Sistemi
- Eski
IMixedRealityEventSystem
API yöntemleriRegister
veUnregister
eski olarak işaretlendi. Geriye dönük uyumluluk için korunurlar. InputSystemGlobalListener
eski olarak işaretlendi. İşlevselliği değişmedi.BaseInputHandler
temel sınıfı olarakInputSystemGlobalListener
InputSystemGlobalHandlerListener
değiştirildi. Bu, alt öğeleri için hataya neden olan bir değişikliktirBaseInputHandler
.
Değişikliğin arkasındaki motivasyon
Eski olay sistemi API'sinin Register
çalışma Unregister
zamanında birden çok soruna neden olma olasılığı vardır:
- Bir bileşen genel olaylar için kaydolsa , tüm türlerdeki genel giriş olaylarını alır.
- Nesnedeki bileşenlerden biri genel giriş olayları için kaydolacaksa, bu nesnedeki tüm bileşenler tüm türlerdeki genel giriş olaylarını alır.
- Aynı nesnedeki iki bileşen genel olaylara kaydolursa ve biri çalışma zamanında devre dışı bırakılırsa, ikincisi genel olayları almayı durdurur.
Yeni API RegisterHandler
ve UnregisterHandler
:
- Genel olarak hangi giriş olaylarının dinlenmesi ve hangilerinin odaklanmış tabanlı olması gerektiği üzerinde açık ve ayrıntılı bir denetim sağlar.
- Aynı nesnedeki birden çok bileşenin genel olayları birbirinden bağımsız olarak dinlemesine izin verir.
Geçiş
- API'yi daha önce doğrudan çağırıyorsanız
Register
/Unregister
, bu çağrıları çağrısıylaRegisterHandler
/UnregisterHandler
değiştirin. Genel parametreler olarak uyguladığınız işleyici arabirimlerini kullanın. Birden çok arabirim uygularsanız ve bunlardan bazıları genel giriş olaylarını dinlerse, birden çok kez çağırınRegisterHandler
. - 'den
InputSystemGlobalListener
devralıyorsanız devralmayı olarakInputSystemGlobalHandlerListener
değiştirin. Yöntemleri uygulamaRegisterHandlers
veUnregisterHandlers
soyutlama. Genel olayları dinlemek istediğiniz tüm işleyici arabirimlerine kaydolmak için uygulama çağrısındainputSystem.RegisterHandler
(inputSystem.UnregisterHandler
). - 'den
BaseInputHandler
devralıyorsanız, ve soyut yöntemleri uygulayınUnregisterHandlers
RegisterHandlers
(içinInputSystemGlobalListener
olduğu gibi).
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 Farkındalık
IMixedRealitySpatialAwarenessSystem ve IMixedRealitySpatialAwarenessObserver arabirimleri aşağıda açıklandığı gibi birden çok hataya neden olan değişiklik almıştır.
Değişiklikler
Aşağıdaki yöntemler, kullanımlarını daha iyi açıklamak için yeniden adlandırılmıştır.
IMixedRealitySpatialAwarenessSystem.CreateSpatialObjectParent
kullanımını netleştirmek içinIMixedRealitySpatialAwarenessSystem.CreateSpatialAwarenessObservationParent
olarak yeniden adlandırıldı.
Ekleme
Müşteri geri bildirimlerine dayanarak, önceden gözlemlenen uzamsal farkındalık verilerinin kolayca kaldırılmasına yönelik destek eklendi.
IMixedRealitySpatialAwarenessSystem.ClearObservations()
IMixedRealitySpatialAwarenessSystem.ClearObservations<T>(string name)
IMixedRealitySpatialAwarenessObserver.ClearObservations()
Solvers
Bazı çözücü bileşenleri ve SolverHandler yönetici sınıfı, çeşitli hataları düzeltmek ve daha sezgisel kullanım için değişmiştir.
SolverHandler
- Sınıf artık
ControllerFinder
TrackedObjectToReference
ortak özellik kullanım dışı bırakıldı ve olarak yeniden adlandırıldıTrackedTargetType
TrackedObjectType
sol & sağ denetleyici değerlerini kullanım dışı bırakır. Bunun yerine, izlemeyi sol veya sağ denetleyiciyle sınırlamak için veyaHandJoint
değerlerini kullanınMotionController
ve yeniTrackedHandedness
özelliği güncelleştirin
Inbetween
TrackedObjectForSecondTransform
ortak özellik kullanım dışı bırakıldı ve olarak yeniden adlandırıldıSecondTrackedObjectType
AttachSecondTransformToNewTrackedObject()
Kaldırıldı. Çözücüyü güncelleştirmek için ortak özellikleri değiştirin (örneğinSecondTrackedObjectType
)
SurfaceMagnetism
MaxDistance
ortak özellik kullanım dışı bırakıldı ve olarak yeniden adlandırıldıMaxRaycastDistance
CloseDistance
ortak özellik kullanım dışı bırakıldı ve olarak yeniden adlandırıldıClosestDistance
- için varsayılan değer
RaycastDirectionMode
artıkTrackedTargetForward
izlenen hedef dönüşüm yönündeki raycast'ları ileriye doğru OrientationMode
veFull
sabit listesi değerleriVertical
sırasıyla veSurfaceNormal
olarak yeniden adlandırıldıTrackedTarget
KeepOrientationVertical
ilişkili GameObject'in yönlendirmesinin dikey kalıp kalmayacağını denetlemek için ortak özellik eklendi
Düğmeler
PressableButton
DistanceSpaceMode
artık özelliği varsayılan olarak ayarlanmıştırLocal
. Bu, basılabilir durumdayken düğmelerin ölçeklendirilmesini sağlar
Kırpma Küresi
ClippingSphere arabirimi, ClippingBox ve ClippingPlane içinde bulunan API'leri yansıtacak şekilde değiştirildi.
ClippingSphere'ın Radius özelliği artık dönüştürme ölçeğine göre örtük olarak hesaplanır. Geliştiricilerin denetçide ClippingSphere yarıçapını belirtmesi gerekmeden önce. Yarıçapı değiştirmek istiyorsanız, dönüştürmenin dönüşüm ölçeğini normalde yaptığınız gibi güncelleştirmeniz yeter.
NearInteractionTouchable ve PokePointer
- NearInteractionTouchable artık Unity UI tuvali dokunmayı işlemez. NearInteractionTouchableUnityUI sınıfı artık Unity UI dokunulabilir öğeler için kullanılmalıdır.
- ColliderNearInteractionTouchable, harmanlamaları temel alan dokunulabilir öğeler için yeni temel sınıftır. Yani NearInteractionTouchableUnityUI dışındaki tüm dokunulabilir öğeler.
- BaseNearInteractionTouchable.DistFront taşındı ve PokePointer.TouchableDistance olarak yeniden adlandırıldı Bu uzaklık ve PokePointer'ın dokunulabilir öğelerle etkileşim kurabileceği uzaklıktır. Önceden her dokunılabilirin kendi maksimum etkileşim uzaklığı vardı, ancak şimdi bu daha iyi iyileştirmeye izin veren PokePointer'da tanımlanıyor.
- BaseNearInteractionTouchable.DistBack, PokeThreshold olarak yeniden adlandırıldı Bu, PokeThreshold'un DebounceThreshold'un karşılığı olduğunu açıkça gösterir. PokeThreshold çaprazlandığında dokunmatik bir özellik etkinleştirilir ve DebounceThreshold çaprazlandığında serbest bırakılır.
Readonlyattribute
Ad Microsoft.MixedReality.Toolkit
alanı , BeginReadOnlyGroupAttribute
ve EndReadOnlyGroupAttribute
öğesine eklendiReadOnlyAttribute
.
PointerClickHandler
PointerClickHandler
Sınıfı kullanım dışı bırakıldı. PointerHandler
bunun yerine kullanılmalıdır, aynı işlevselliği sağlar.
HoloLens tıklayıcısı desteği
HoloLens tıklayıcısının denetleyici eşlemeleri, işlenmemiş olmaktan işlenmemiş WindowsMixedRealityController
olarak WindowsMixedRealityGGVHand
değiştirildi. Bunu hesaba eklemek için, ControllerMapping profilinizi ilk kez açtığınızda otomatik bir güncelleştirici çalışır. Bu tek seferlik geçiş adımlarını tetikleyebilmek için lütfen 2.0.0 sürümüne yükselttikten sonra özel profilleri en az bir kez açın.
InteractableHighlight
InteractableHighlight
Sınıfı kullanım dışı bırakıldı. Bunun InteractableOnFocus
yerine sınıf ve FocusInteractableStates
varlık kullanılmalıdır. için yeni Theme
bir varlık oluşturmak için proje penceresine InteractableOnFocus
sağ tıklayın ve Araç Seti>Etkileşime Açılabilir>TemaKarma Gerçeklik'yı> seçin.
HandInteractionPanZoom
HandInteractionPanZoom
giriş bileşeni olmadığından kullanıcı arabirimi ad alanına taşındı. HandPanEventData
ayrıca bu ad alanına taşındı ve diğer kullanıcı arabirimi olay verilerine karşılık gelen şekilde basitleştirildi.
2.0.0 içindeki derleme adı değişiklikleri
2.0.0 sürümünde, resmi Karma Gerçeklik Toolkit derleme adları ve ilişkili derleme tanımı (.asmdef) dosyaları aşağıdaki desene uyacak şekilde güncelleştirilmiştir.
Microsoft.MixedReality.Toolkit[.<name>]
Bazı durumlarda, içeriklerinde daha iyi bir bütünlük oluşturmak için birden çok derleme birleştirildi. Projeniz özel .asmdef dosyaları kullanıyorsa güncelleştirilmesi gerekebilir.
Aşağıdaki tablolarda RC2 .asmdef dosya adlarının 2.0.0 sürümüyle nasıl eşlediği açıklanmaktadır. Tüm derleme adları .asmdef dosya adıyla eşleşer.
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 |