Kísérleti funkciók

Úgy tűnik, hogy az MRTK-csapat néhány funkciója nagy kezdeti értékkel rendelkezik, még akkor is, ha még nem teljes körűen részletezte a részleteket. Az ilyen típusú funkciók esetében azt szeretnénk, hogy a közösség korán lássa őket. Mivel a ciklus korai szakaszában vannak, kísérletiként címkézzük fel őket, jelezve, hogy még mindig fejlődnek, és idővel változhatnak.

Mire számíthat egy kísérleti funkciótól?

Ha egy összetevő kísérletiként van megjelölve, a következőkre számíthat:

  • A használatot bemutató példa jelenet, amely az MRTK/Examples/Experimental almappában található
  • Előfordulhat, hogy a kísérleti funkciók nem tartalmaznak docsokat.
  • Valószínűleg nincsenek tesztjeik.
  • A kísérleti funkciók változhatnak.

Kísérleti funkciókra vonatkozó irányelvek

A kísérleti kódnak egy külön mappában kell lennie

A kísérleti kódnak egy legfelső szintű kísérleti mappába kell bemenni, amelyet a kísérleti funkció neve követ. Ha például egy új funkciót próbál meg közreműködni, helyezze el a kódot a következőben:

  • Példajelenetek, szkriptek a következőbe: MRTK/Examples/Experimental/FooBar/
  • Összetevő-szkriptek, az előzetesek a MRTK/SDK/Experimental/FooBar/
  • Az összetevő-vizsgálók a MRTK/SDK/Inspectors/Experimental/FooBar

Ha a kísérleti funkció neve alatt almappákat használ, próbálja meg tükrözni az MRTK mappastruktúráját.

A megoldók például a MRTK/SDK/Experimental/FooBar/Features/Utilities/Solvers/FooBarSolver.cs

A jeleneteket egy jelenetmappában tartsa fent: MRTK/Examples/Experimental/FooBar/Scenes/FooBarExample.unity

Megjegyzés

Úgy véljük, hogy nem csak kísérleti gyökérmappa van, hanem a Kísérleti mappa például a alatt MRTK/Examples/HandTracking/Scenes/Experimental/HandBasedMenuExample.unity található. Úgy döntöttünk, hogy a kísérleti funkciók felderítése érdekében mappákat hozunk létre a bázison.

A kísérleti kódnak egy speciális névtérben kell lennie

Győződjön meg arról, hogy a kísérleti kód egy kísérleti névtérben található, amely megfelel a nem kísérleti helynek. Ha például az összetevő a-hez egy megoldó része, a Microsoft.MixedReality.Toolkit.Utilities.Solvers névterének a következőnek kell lennie: Microsoft.MixedReality.Toolkit.Experimental.Utilities.Solvers .

Példaként tekintse meg ezt a le pr-t.

A kísérleti funkcióknak [Kísérleti] attribútummal kell

Adjon hozzá egy attribútumot az egyik mező fölött, hogy az összetevőszerkesztőben megjelenjen egy kis párbeszédpanel, amely szerint a funkció kísérleti jellegű, és jelentős [Experimental] változásokon kell átesni.

Ha parancsokat ad hozzá a menükhöz a szerkesztőben, győződjön meg arról, hogy a kísérleti funkciók a "kísérleti" almenük alatt vannak. Íme, néhány példa:

Felső szintű menüparancs hozzáadása:

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

Összetevő menü hozzáadása:

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

Dokumentáció

Kövesse az alábbi lépéseket a kísérleti funkció dokumentációjának hozzáadásához:

  1. A kísérleti funkciók dokumentációjának a kísérleti mappában readme.md található fájlban kell lennie. Például: MRTK/SDK/Experimental/PulseShader/readme.md.

  2. A Funkcióáttekintés alatt adjon hozzá egy hivatkozást a Kísérleti szakaszban a következő oldalon: .

Az MRTK-kódra gyakorolt hatás minimalizálása

Bár az MRTK-módosítás miatt előfordulhat, hogy a kísérlet működni fog, másokra is hatással lehet, olyan módon, ahogy nem várható. Az MRTK magkódra vonatkozó regressziók a lekéréses kérelem visszaállnak.

Törekedn arra, hogy a kísérleti mappákon kívül ne legyen nulla módosítás a mappákban. Itt található azon mappák listája, amelyek kísérleti módosításokkal is végrehajthatók:

  • MRTK/SDK/Kísérleti
  • MRTK/SDK/Inspectors/Experimental
  • MRTK/Példák/Kísérleti

A mappákon kívüli módosításokat nagyon körültekintően kell kezelni. Ha a kísérleti funkciónak tartalmaznia kell az MRTK alapvető kódjának módosításait, érdemes lehet az MRTK-módosításokat egy különálló lekéréses kérelemre szétvágni, amely teszteket és dokumentációt tartalmaz.

A kísérleti funkció használata nem befolyásolhatja az alapvető vezérlők használatát

A legtöbb felhasználó gyakran használ olyan alapvető felhasználói felületi összetevőket, mint a gomb, a ManipulationHandler és az Interactable. Valószínűleg nem fogják használni a kísérleti funkciót, ha megakadályozza, hogy gombokat használjanak.

Az összetevő használata ne törje fel a gombokat, a ManipulationHandlert, a Határolókeretet vagy a kezelhető gombra.

Ebben a ScrollableObjectCollection PR-banpéldául egy ScrollableObjectCollection hozzáadása miatt a felhasználók nem tudják használni a HoloLens gomb előtagját. Annak ellenére, hogy ezt nem a pr-ban lévő hiba okozta (hanem egy meglévő hiba felfedte), megakadályozta, hogy a lekért leküldődjön.

Adjon meg egy példa jelenet, amely bemutatja a funkció használatát

A személyeknek látnia kell, hogyan használható a funkció, és hogyan tesztelik azt.

Adjon meg egy példát az MRTK/Examples/Experimental/YOUR_FEATURE

A kísérleti funkciók látható hibáinak minimalizálása a felhasználók számára

Mások nem fogják használni a kísérleti funkciót, ha az nem működik, és nem fog egy funkcióra sem átesni.

Tesztelje a példa jelenetét a célplatformon, és ellenőrizze, hogy a várt módon működik-e. Győződjön meg arról, hogy a funkció szerkesztőben is működik, hogy a személyek gyorsan iterálják és látják a funkciót, még akkor is, ha nem rendelkezik a célplatformmal.

Kísérleti kód megszerzése MRTK-kódként

Ha egy funkció végül elég sok használatot lát, akkor a fő MRTK-kódra kell áttennünk. Ehhez a funkciónak tesztekkel, dokumentációval és egy példa jelenetekkel kell rendelkezik.

Ha készen áll a funkció MRTK-nak való kiadására, hozzon létre egy problémát, amely ellenőrzi a lekért pr-t. A pr-nek tartalmaznia kell minden olyan dolgot, ami ahhoz szükséges, hogy ez egy alapvető funkció legyen: tesztek, dokumentáció és egy használatot bemutató példa jelenet.

Ne felejtse el frissíteni a névtereket is, hogy eltávolítsa a "Kísérleti" alteret.