Kísérleti funkciók – MRTK2

Egyes funkciók, amelyeken az MRTK csapata dolgozik, sok kezdeti értéket képviselnek még akkor is, ha még nem részleteztük teljesen a részleteket. Az ilyen típusú funkciók esetében azt szeretnénk, hogy a közösség korán láthassa őket. Mivel a ciklus korai szakaszában vannak, kísérletiként címkézzük őket, jelezve, hogy még mindig fejlődnek, és idővel változhatnak.

Mi várható egy kísérleti funkciótól?

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

  • Példa a használatot bemutató jelenetre, amely az almappában MRTK/Examples/Experimental található
  • Előfordulhat, hogy a kísérleti funkciók nem rendelkeznek dokumentumokkal.
  • 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 külön mappában kell lennie

A kísérleti kódnak egy legfelső szintű kísérleti mappába kell lépnie, amelyet a kísérleti funkció neve követ. Ha például egy új funkcióval próbál hozzájárulni a FooBarhoz, tegye a kódot a következőbe:

  • Példajelenetek, szkriptek MRTK/Examples/Experimental/FooBar/
  • Összetevőszkriptek, előfabs-ok MRTK/SDK/Experimental/FooBar/
  • A komponensvizsgálók a MRTK/SDK/Inspectors/Experimental/FooBar

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

A solverek 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 gondoljuk, hogy nem rendelkezik egyetlen kísérleti gyökérmappával, és ehelyett a Kísérletit mondjuk alá helyeztük MRTK/Examples/HandTracking/Scenes/Experimental/HandBasedMenuExample.unity. Úgy döntöttünk, hogy a bázison mappákkal dolgozunk, hogy könnyebben felfedezhetők legyenek a kísérleti funkciók.

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 olyan kísérleti névtérben található, amely megfelel a nem kísérleti helynek. Ha például az összetevő a solvers része a helyen Microsoft.MixedReality.Toolkit.Utilities.Solvers, a névterének a következőnek kell lennie Microsoft.MixedReality.Toolkit.Experimental.Utilities.Solvers: .

Ebben a lekéréses kérelemben talál egy példát.

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

Adjon hozzá egy [Experimental] attribútumot az egyik mező fölé, hogy egy kis párbeszédpanel jelenjen meg az összetevő-szerkesztőben, amely megemlíti, hogy a funkció kísérleti jellegű, és jelentős változásoknak vannak kitéve.

Győződjön meg arról, hogy a kísérleti funkciók "kísérleti" almenük alatt találhatók, amikor parancsokat ad hozzá a szerkesztő menüihez. Í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ó

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

  1. A kísérleti funkciók dokumentációjának a kísérleti mappában readme.md lévő fájlban kell lennie. Például MRTK/SDK/Kísérleti/PulseShader/readme.md.

  2. A Funkcióáttekintések területen adjon hozzá egy hivatkozást a Kísérleti szakaszában a következő helyen Documentation/toc.yml: .

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

Bár az MRTK-módosítás a kísérlet működését is eredményezheti, az hatással lehet másokra olyan módon, amire nem számít. Az MRTK-magkódra irányuló regressziók esetén a lekéréses kérelem visszaáll.

Törekedjen arra, hogy a kísérleti mappáktól eltérő mappákban ne legyen változás. Íme azoknak a mappáknak a listája, amelyek kísérleti módosításokkal rendelkezhetnek:

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

Az ezeken a mappákon kívüli módosításokat nagyon óvatosan kell kezelni. Ha a kísérleti funkciónak tartalmaznia kell az MRTK-alapkód módosításait, fontolja meg az MRTK-módosítások felosztását egy külön lekéréses kérelemre, amely teszteket és dokumentációt tartalmaz.

A kísérleti funkció használata nem befolyásolhatja a felhasználók alapvető vezérlők használatára való képességét

A legtöbb ember nagyon gyakran használ olyan alapvető UX-összetevőket, mint a gomb, az 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 nem szakíthatja meg a gombokat, az ManipulationHandlert, a Határolókeretet vagy az interakciót.

Ebben a ScrollableObjectCollection PR-ben például egy ScrollableObjectCollection hozzáadása miatt a felhasználók nem használhatják a HoloLens gomb előtagját. Annak ellenére, hogy ezt nem a lekéréses kérelem hibája okozta (hanem egy meglévő hibát), megakadályozta, hogy a lekéréses kérelem be legyen jelentkezve.

Adjon meg egy példajelenetet, amely bemutatja, hogyan használhatja a funkciót

Kapcsolatok látnia kell a funkció használatát és tesztelését.

Adjon meg egy példát az MRTK/Példák/Kísérleti/YOUR_FEATURE alatt

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

Mások nem fogják használni a kísérleti funkciót, ha nem működik, nem végzi el a funkciót.

Tesztelje a példajelenetet a célplatformon, és győződjön meg arról, hogy a várt módon működik. Győződjön meg arról, hogy a funkció a szerkesztőben is működik, így a felhasználók akkor is gyorsan iterálhatnak és láthatják a funkciót, ha nem rendelkeznek a célplatformmal.

Kísérleti kód elvégzése MRTK-kódba

Ha egy funkció végül elég sok használatot tapasztal, akkor érdemes az alapSZINTŰ MRTK-kódra felematkáznunk. Ehhez a funkciónak tesztekkel, dokumentációval és egy példajelenettel kell rendelkeznie.

Ha készen áll a funkció MRTK-jának fokozatos lekérésére, hozzon létre egy problémát, amely alapján ellenőrizheti a lekéréses kérelmet. A lekéréses kérelemnek tartalmaznia kell minden olyan dolgot, ami ahhoz szükséges, hogy ez egy alapvető funkció legyen: tesztek, dokumentáció és egy használati példát bemutató jelenet.

Emellett ne felejtse el frissíteni a névtereket a "Kísérleti" altér eltávolításához.