Deneysel özellikler — MRTK2

MRTK ekibinin üzerinde çalıştığı bazı özellikler, ayrıntıları tam olarak ayrıntılı olarak ifade etmesek bile çok fazla başlangıç değerine sahip gibi görünüyor. Bu tür özellikler için topluluğun bunları erken görme şansı elde etmelerini istiyoruz. Döngünün erken aşamalarında olduklarından, bunları hala geliştiğini ve zaman içinde değiştirilebilir olduğunu göstermek için deneysel olarak etiketledik.

Deneysel bir özellikten neler bekleyebileceğiniz

Bir bileşen deneysel olarak işaretlenmişse aşağıdakileri bekleyebilirsiniz:

  • Alt klasörün altında MRTK/Examples/Experimental bulunan kullanımı gösteren örnek bir sahne
  • Deneysel özelliklerin belgeleri olmayabilir.
  • Muhtemelen testleri yoktur.
  • Deneysel özellikler değiştirilebilir.

Deneysel özellik yönergeleri

Deneysel kod ayrı bir klasörde yer almalıdır

Deneysel kod, en üst düzey deneysel bir klasöre ve ardından deneysel özellik adına geçmelidir. Örneğin, yeni bir özellik Olan FooBar'a katkıda bulunmaya çalışıyorsanız, aşağıdaki kodu girin:

  • Örnek sahneler, betikler MRTK/Examples/Experimental/FooBar/
  • Bileşen betikleri, prefab'lar MRTK/SDK/Experimental/FooBar/
  • Bileşen denetçileri MRTK/SDK/Inspectors/Experimental/FooBar

Deneysel özellik adı altında alt klasörler 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 kısımdaki bir sahne klasöründe tutun: MRTK/Examples/Experimental/FooBar/Scenes/FooBarExample.unity

Not

Tek bir Deneysel kök klasörüne sahip olmadığını ve bunun yerine Deneysel'i ifadesinin MRTK/Examples/HandTracking/Scenes/Experimental/HandBasedMenuExample.unityaltına koyarak değerlendirdik. Deneysel özelliklerin bulunmasını kolaylaştırmak için temeldeki klasörlerle devam etmeye karar verdik.

Deneysel kod özel bir ad alanında olmalıdır

Deneysel kodun deneysel olmayan konumla eşleşen deneysel bir ad alanında bulunduğundan emin olun. Örneğin, bileşeniniz konumundaki Microsoft.MixedReality.Toolkit.Utilities.Solversçözücülerin bir parçasıysa, ad alanı olmalıdır Microsoft.MixedReality.Toolkit.Experimental.Utilities.Solvers.

Bir örnek için bu çekme isteğine bakın.

Deneysel özelliklerin [Experimental] özniteliği olmalıdır

Bileşen düzenleyicisinde özelliğinizden bahseden küçük bir [Experimental] iletişim kutusunun deneysel olduğunu ve önemli değişikliklere tabi olduğunu belirtmek için alanlarınızdan birinin üstüne bir öznitelik ekleyin.

Düzenleyicideki menülere komut eklerken deneysel özelliklerin "deneysel" alt menüler altında olduğundan emin olun. İş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 belgeler eklemek için şu adımları izleyin:

  1. Deneysel bir özelliğin belgeleri deneysel klasördeki bir readme.md dosyaya girmelidir. Örneğin, MRTK/SDK/Experimental/PulseShader/readme.md.

  2. Özelliğe Genel Bakış'ın altında, konumundaki Documentation/toc.ymlDeneysel bölümünde bağlantı ekleyin.

MRTK kodu üzerindeki etkiyi en aza indirme

MRTK değişikliğiniz denemenizin çalışmasını sağlayabilir ancak diğer kişileri beklemediğiniz şekillerde etkileyebilir. MRTK çekirdek kodunda yaptığınız tüm regresyonlar çekme isteğinizin geri döndürülmesiyle sonuçlanır.

Deneysel klasörler dışındaki klasörlerde sıfır değişiklik olmasını hedefleyin. Deneysel değişikliklere sahip olabilecek klasörlerin listesi aşağıdadır:

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

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

Deneysel özelliğinizin kullanılması, kişilerin çekirdek denetimleri kullanma becerisini etkilememelidir

Çoğu kişi düğme, ManipulationHandler ve Interactable gibi çekirdek UX bileşenlerini çok sık kullanır. Deneysel özelliğinizi, düğmeleri kullanmalarını engellerse büyük olasılıkla kullanmayacaktır.

Bileşeninizi kullandığınızda düğmeler, ManipulationHandler, BoundingBox veya etkileşim kurulabilir olmamalıdır.

Örneğin, bu ScrollableObjectCollection PR'sinde ScrollableObjectCollection eklemek, kişilerin HoloLens düğmesi ön eklerini kullanamamasına neden oldu. Bu durum çekme isteğindeki bir hatadan kaynaklanmasa da (bunun yerine mevcut bir hatayı ortaya çıkarmış olsa da), çekme isteğinin iade edilmesini engelledi.

Özelliğin nasıl kullanılacağını gösteren örnek bir sahne sağlayın

Kişiler özelliğinizin nasıl kullanılacağını ve nasıl test yapılacağını görmeniz gerekir.

MRTK/Örnekler/Deneysel/YOUR_FEATURE altında bir örnek sağlayın

Deneysel özelliklerde kullanıcının görünür kusurlarını en aza indirme

Diğerleri deneysel özelliği kullanmaz, çalışmazsa bir özelliğe mezun olmaz.

Hedef platformunuzda örnek sahnenizi test edin ve beklendiği gibi çalıştığından emin olun. Kişilerin hedef platforma sahip olmasalar bile özelliğinizi hızla yinelemesi ve görebilmesi için özelliğinizin düzenleyicide de çalıştığından emin olun.

Deneysel kodu MRTK koduna mezun etme

Bir özellik oldukça fazla kullanım görürse bunu çekirdek MRTK koduna dönüştürmeliyiz. Bunu yapmak için özelliğin testleri, belgeleri ve örnek bir sahnesi olmalıdır.

MRTK özelliğinden mezun olmak için hazır olduğunuzda çekme isteğinizi denetlemek için bir sorun oluşturun. Çekme isteği, bunu temel bir özellik haline getirmek için gereken her şeyi içermelidir: 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.