Deneysel özellikler

MrTK ekibinin üzerinde çalışması gereken bazı özellikler, ayrıntıları tam olarak incelememiz gerekse bile çok fazla başlangıç değerine sahip gibi görünüyor. Bu tür özellikler için topluluğun bunları erkenden görme şansı elde etmelerini istiyoruz. Döngünin erken dönemleri olduğundan, hala gelişmeye devam olduklarını ve zaman içinde değişebilir olduklarını belirtmek için deneysel olarak etiketlemektedir.

Deneysel bir özellikten beklenilenler

Bir bileşen deneysel olarak işaretlenirse, şunları bekliyor olabilir:

  • Alt klasör altında bulunan kullanımı gösteren örnek MRTK/Examples/Experimental sahne
  • Deneysel özelliklerin belgeleri olabilir.
  • Muhtemelen testleri yok.
  • Deneysel özellikler değişebilir.

Deneysel özellik yönergeleri

Deneysel kod ayrı bir klasörde yer ala

Deneysel kod, deneysel özellik adının ardından en üst düzey deneysel bir klasöre girmektedir. Örneğin, FooBar'ın yeni bir özelliğine katkıda bulunmak için aşağıdaki kodu girin:

  • Örnek sahneler, betikler MRTK/Examples/Experimental/FooBar/
  • Bileşen betikleri, önfazlar içine gider MRTK/SDK/Experimental/FooBar/
  • Bileşen denetçileri MRTK/SDK/Inspectors/Experimental/FooBar

Deneysel özellik adı altında alt klasörleri kullanırken MRTK'nin aynı klasör yapısını yansıtmayı deneyin.

Örneğin, çözücüler MRTK/SDK/Experimental/FooBar/Features/Utilities/Solvers/FooBarSolver.cs

Sahneleri üst klasöre yakın bir sahne klasöründe tutabilirsiniz: MRTK/Examples/Experimental/FooBar/Scenes/FooBarExample.unity

Not

Tek bir Deneysel kök klasöre sahip olmadığını ve bunun yerine deneysel klasörünün altında olduğunu kabul MRTK/Examples/HandTracking/Scenes/Experimental/HandBasedMenuExample.unity ettik. Deneysel özellikleri keşfetmeyi kolaylaştırmak için temeldeki klasörlerle devam etmeye karar verdik.

Deneysel kodun özel bir ad alanı içinde olması gerekir

Deneysel kodun deneysel olmayan konumla eşleşen deneysel bir ad alanı içinde olduğundan emin olmak. Örneğin, bileşeniniz içinde çözücülerin bir parçası Microsoft.MixedReality.Toolkit.Utilities.Solvers ise, ad alanı olması Microsoft.MixedReality.Toolkit.Experimental.Utilities.Solvers gerekir.

Örnek için bu PR'ye bakın.

Deneysel özelliklerin [Experimental] özniteliği olması gerekir

Bileşenin düzenleyicisinde, özelliğinizin deneysel olduğunu ve önemli değişikliklere tabi olduğunu ifade etmek üzere küçük bir iletişim kutusunun görünmesi için alanlarınızı birinin üzerine [Experimental] bir öznitelik ekleyin.

Düzenleyicide menülere komut eklerken deneysel özelliklerin "deneysel" alt menüler altında olduğundan emin olmak. İşte birkaç örnek:

Üst düzey menü komutu ekleme:

[MenuItem("Mixed Reality Toolkit/Experimental/MyCommand")]
public static void MyCommand()

Bileşen menüsü ekleme:

[AddComponentMenu("MRTK/Experimental/MyCommand")]

Belgeler

Deneysel özelliğiniz için belge eklemek için şu adımları izleyin:

  1. Deneysel bir özellikle ilgili tüm belgeler deneysel readme.md klasördeki bir dosyaya girebilirsiniz. Örneğin MRTK/SDK/Experimental/PulseShader/readme.md.

  2. Özellik Genel Bakışları altında, 'de Deneysel bölümünde bir bağlantı ekleyin.

MRTK kodu üzerindeki etkiyi en aza indirme

MRTK değişikliğiniz denemenizin çalışmasına neden olabilir ancak diğer insanları beklemeyebilirsiniz. MRTK çekirdek kodunda yapılan tüm regresyonlar, çekme isteğinizin geri dönmesine neden olur.

Deneysel klasörler dışında klasörlerde sıfır değişiklik olması hedefle. Deneysel değişikliklere sahip olan klasörlerin listesi şu şekildedir:

  • MRTK/SDK/Deneysel
  • MRTK/SDK/Inspectors/Experimental
  • MRTK/Örnekler/Deneysel

Bu klasörlerin dışındaki değişiklikler çok dikkatli bir şekilde işilmelidir. Deneysel özelliğinizin MRTK çekirdek kodunda değişiklik içermesi gerekirse, MRTK değişikliklerini testleri ve belgeleri içeren ayrı bir çekme isteğine bölmeyi göz önünde bulundurabilirsiniz.

Deneysel özelliğinizi kullanmak, kişilerin temel denetimleri kullanma becerisini etkilemez

Çoğu kişi düğme, ManipulationHandler ve Etkileşime değiştirilebilir gibi temel UX bileşenlerini çok sık kullanır. Düğme kullanmalarını önleyen deneysel özelliğinizi kullanmama olasılığı vardır.

Bileşeninizi kullanmak düğmeleri, ManipulationHandler' ı, BoundingBox'ı veya etkileşime değiştirilebilir düğmeleri kesmez.

Örneğin, bu ScrollableObjectCollectionPR'sinde, ScrollableObjectCollection eklemek, kişilerin HoloLens önfazlarını kullanamalarına neden oldu. Bu, PR'de bir hatadan kaynaklanmazsa da (mevcut bir hatayı kullanıma almak yerine), PR'nin iade edimsini önledi.

Özelliğin nasıl kullanıLll olduğunu gösteren örnek bir sahne sağlama

Kişilerin özelliğinizi nasıl kullanabileceğini ve nasıl test etmek zorunda olduğunu görmeleri gerekir.

MRTK/Examples/Experimental/YOUR_FEATURE altında bir örnek YOUR_FEATURE

Deneysel özelliklerde kullanıcı görünür açıklarını en aza indirme

Diğerleri, deneysel özelliği kullanmazsa, bir özelle çalışmaz.

Örnek sahnenizi hedef platformda test etmek için beklendiği gibi çalıştığını emin olun. Özelliğinizin düzenleyicide de çalışmalarından emin olun; böylece kişiler hedef platforma sahip olsalar bile özelliğinizi hızla yineler ve görebilir.

Deneysel kodu MRTK koduna dönüştürerek

Bir özellik çok fazla kullanım görüyorsa, bunu temel MRTK koduna dönüştürerek tamamlamız gerekir. Bunu yapmak için özelliğin testlere, belgelere ve örnek bir sahneye sahip olması gerekir.

MRTK özelliğini kullanıma hazır hale geldiğinde, PR'nizi denetlemeye yönelik bir sorun oluşturun. Bu özelliğin temel bir özellik olması için gerekli olan her şeyi pr'de bulabilirsiniz: testler, belgeler ve kullanımı gösteren örnek bir sahne.

Ayrıca, "Deneysel" alt alanını kaldırmak için ad alanlarını güncelleştirmeyi unutmayın.