Megosztás a következőn keresztül:


Mennyiségi felhasználói felület vászonnal – MRTK3

Rugalmas és rugalmas elrendezés

Tároló átméretezése csúszkákkal

Teljes csuklós kéztámogatás

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-n CanvasProxyInteractor 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.

Architekturális diagram, amely bemutatja, hogyan működnek együtt a különböző bemeneti események és interakciós típusok.