Mennyiségi felhasználói felület vászonnal – MRTK3
Megjegyzés
Ez a hibrid vászonalapú felhasználói felület létrehozásának fogalmi áttekintése. Az egyes UX-előfeltételek dokumentációját az UX-összetevők dokumentációjában találja.
Az MRTK3 olyan mennyiségi felhasználói felületet vezet be, amely a Unity RectTransform és Canvas rendszerével van integrálva. Bár ezt a rendszert korábban elsősorban 2D sík felhasználói felületre használták, képes a mennyiségi 3D felhasználói felület renderelésére és elrendezésére. Ez felgyorsíthatja a tervezési iterációt, és növelheti a mennyiségi felhasználói felülettel létrehozható tervek megbízhatóságát.
Megjegyzés
A vászonalapú összetevőtár aktív fejlesztés alatt áll, és gyorsan változik új funkciókkal, megjelenéssel, elrendezéssel és architektúrával.
Az MRTK 2.x nem vászonalapú felhasználói felületi rendszereit nagyon nehéz volt megtervezni, mert nem rendelkeztek a felülettervező rendszertől elvárt alapvető funkciókkal.
- ✘ Nem fizikai tervezési egységek hiánya
- ✘ Nincs igazítás
- ✘ Nincs margó/párnázás
- ✘ Nincs rugalmas vagy rugalmas elrendezés
- ✘ Az elrendezés, a méret és a konfiguráció minden egyes permutációjának különböző előképei
- ✘ Nagyon korlátozott támogatás a gyűjtemény elrendezéséhez (vízszintes/függőleges összeállítású elrendezések)
- ✘ Az alapvető tervezési funkciók hiánya, mint például az abszolút méretű lekerekített sarki radii vagy a löketszélesség
- ✘ A felhasználói felületi elemek méretének módosításához skálázás szükséges, amely a gyermekeket károsan módosítja
- ✘ Korlátozott támogatás egérhez és billentyűzethez
- ✘ A gamepad nem támogatott
Ezeknek a korlátozásoknak köszönhetően a mennyiségi felhasználói felület korábban primitívebb volt a kialakításában, és a műszaki tervezőktől rengeteg manuális munkát igényelt a gyönyörű elrendezések létrehozásához.
Az MRTK3 egységes megközelítést vezet be. Az összes XR-interakciót támogató, gyönyörű mennyiségi felhasználói felületi vezérlők (például a csuklós kézkövető prések és a tekintet-csippentés) Canvas-RectTransform környezetben hozhatók létre. A vezérlők automatikusan elhelyezhetők a megfelelő margóval, párnázással, rugalmas flextel és a tervezők által várt összes funkcióval. Emellett UGUI-eseményeket is átirányíthatunk az XRI-be, hogy pontosan ugyanazok a felhasználói felületi előfokok ugyanolyan jól működhessenek a 2D-környezetekben és a 3D-ben, beleértve az akadálymentes bemeneteket, például a gamepadet.
Ez a következő előnyöket nyújtja:
- ✔ Rugalmas tervezési egységek, amelyek különböző fizikai környezetekhez (3D valóság, 2D képernyők, TV/Desktop/Mobile/Web) képeznek le
- ✔ A RectTransform igazításának teljes körű támogatása a rugalmas elrendezéshez, összetartó szülő- és gyermekkapcsolatokkal
- ✔ Teljes RectTransform-margó és kitöltési támogatás a UnityUI automatikus átfedési csoportjain keresztül
- ✔ Rugalmas elrendezések támogatása prioritással és margókkal a UnityUI automatikus átfedési csoportjain keresztül
- ✔ Minden vezérlőtípushoz egyetlen előfab, amely bármilyen tartalomhoz vagy környezethez átméretezhető és módosítható
- ✔ Vízszintes, függőleges és rácsos elrendezések a UnityUI automatikusan lefedő csoportjaiból. Az egyéni elrendezések a Unity elrendezési felületeinek kiterjesztésével érhetők el.
- ✔ A Mixed Reality Grafikus eszközök csomag speciális felhasználói felületi árnyékoló funkcióinak köszönhetően számos speciális tervezési funkció, például teljesen méretű lekerekített sarok radii, vonásszélesség és margók széles választéka.
- ✔ Nincs skálázás: minden méretezés és elrendezés a RectTransform méretével és eltolási metrikáival érhető el. A szülők nem skáláznak gyermekeket.
- ✔ Az egér + billentyűzet teljes támogatása natív módon az UGUI-eseményeken és az
UGUIInputAdapter
és-nCanvasProxyInteractor
keresztül ( további információt az Interakciós architektúra dokumentációjában talál) - ✔ A játékpad és az irányított/relatív navigáció támogatása
Ez a teljesítmény és rugalmasság költséges lehet, és a vászonalapú felhasználói felület gondos felügyeletet igényel a gyakori teljesítménybeli buktatók elkerülése érdekében.
- A felhasználói felület minden "mozgó része" külön vászoncsomópontnak kell lennie.
O(tree_height)
A Canvas-hierarchiák mutációjával kapcsolatos költségek merülnek fel; erősen ajánlott több vászon használata több mozgó alkatrészhez/újrafelhasználható összetevőhöz. - Ne használjon egyetlen globális vászont a teljes jelenethez.
- A vászonok és a RectTransformok áthelyezése és elforgatása hatással lehet a teljesítményre. Erősen javasoljuk, hogy a Vászon nem RectTransform "holster" átalakító alá ágyazva legyen, amelyet a vászon közvetlen áthelyezése helyett áthelyez.
- A collider-alapú felhasználói felületek maszkolásával és kivágásával kapcsolatos történetünk még fejlesztés alatt áll. Érdemes elkerülni a kattintható tartalmat tartalmazó görgetőnézeteket.
- Az alapértelmezett Unity irányított navigációs rendszer bizonyos 3D-s környezetekben furcsán viselkedhet. Olyan egyéni navigációs rendszereket vizsgálunk meg, amelyek szokatlan 3D-elrendezésekben erőteljesebben fognak viselkedni.
Részletesebb útmutatást adunk ki a vászonalapú elrendezések optimalizálásához, mivel részletesebb teljesítménytesztelést végzünk különböző eszközökön.
Telepítés
Az összetevők egy 1 tervezési egységből állnak: 1mm arány a fizikai környezetekhez. Amikor vászont állít be a modern 3D-alkalmazásokban való megjelenítésre szánt mennyiségi felhasználói felülettel való használatra:
- Győződjön meg arról, hogy a Vászon világtér
- Győződjön meg arról, hogy a Vászon mérete globálisan 0,001 az összes tengelyen
A 2D-s kijelzőre renderelt alkalmazások esetében a skálázás szabadon módosítható a megadott használhatósági metrikákhoz és minimális érintéses célméretekhez.
Ha interakcióba lép (például a vászonalapú felhasználói felülettel UGUIInputAdapter
), győződjön meg arról, hogy van egy CanvasProxyInteractor
(lehetőleg üres) GameObject a jelenetben. Ez az UGUI-eseményeket az XRI-n keresztül továbbítja, biztosítva, hogy az interakciós adatok megfelelően működjön.
Ha uGUI-bemenettel szeretne kísérletezni a nem UX-összetevőkön, adja hozzá UGUIInputAdapter
az XRI-hez az interakciót. A nem UX-val kapcsolatos interakciók UGUI-bemenete kísérleti jellegű, és számos nyitott hibának van kitéve.
Folyamatos fejlesztés
Még mindig alakítjuk a fejlesztési történetet, hogy gyönyörű felhasználói felületet építsünk a különböző támogatott platformokon. Jelenleg még mindig a legtöbb UX-összetevő két verzióját szállítjuk: az egyiket, amely nem használja a Canvast, statikus, nem válaszoló elrendezéssel (ahogy azt korábban az MRTK 2.x-ben is biztosítottuk), és egy másik verziót, amely az egyesített vászonalapú megközelítéssel készült. Ahogy több összetevőt építünk ki, és kiépítjük a tervezési kódtár implementációját, azt várjuk, hogy a konzisztencia és a karbantartás érdekében elavulttá tesszük a nem vászonalapú összetevőket.
Egyesített állapotkezelés
Az állapot/interakció és a vizualizációk szigorú elkülönítése miatt megfigyelheti, hogy ugyanazokat az állapot- és interakciós szkripteket osztja meg a vászon és a nem vászonalapú környezetek között. Ez terv szerint történik; ugyanezek az interakciós szkriptek bármilyen vizualizációs vagy elrendezési környezetben újra felhasználhatók, csökkentve az API felületét és javítva az interakciók konzisztenciáját. Például Slider
a vászon és a nem vászon csúszkák csúszka-interakciós összetevője, és PressableButton
ugyanazt a szkriptet használja a vászon és a nem vászon gombok között. Ha a jövőben új elrendezési vagy bemutatói keretrendszert fogadnak el, ugyanazt az interakciós logikát és rendszert használhatjuk a konzisztencia és a karbantarthatóság biztosítása érdekében.
Az alábbi architektúradiagram bemutatja, hogyan működnek együtt a különböző bemeneti események és interakciós típusok az egységes interakciós állapot biztosítása érdekében. Kattintson a diagramra egy nagyobb verzió megtekintéséhez.