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.unity
altı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.
Deneysel özelliklerin menüleri "Deneysel" alt menüsüne girmelidir
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:
Deneysel bir özelliğin belgeleri deneysel klasördeki bir
readme.md
dosyaya girmelidir. Örneğin, MRTK/SDK/Experimental/PulseShader/readme.md.Özelliğe Genel Bakış'ın altında, konumundaki
Documentation/toc.yml
Deneysel 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.