Bemeneti rendszer terminológiája – MRTK2

A bemeneti rendszer az MRTK által kínált összes funkció közül az egyik legnagyobb rendszer. Az eszközkészleten belül sok minden épül rá (mutatók, fókusz, előfabs). A bemeneti rendszeren belüli kód lehetővé teszi az olyan természetes interakciókat, mint a megragadás és a forgatás a platformok között.

A bemeneti rendszer saját terminológiával rendelkezik, amelyeket érdemes definiálni:

  • Adatszolgáltatók

    A bemeneti profil bemeneti beállításai az adatszolgáltatókként ismert entitásokra hivatkoznak – egy másik szó, amely ezeket az eszközkezelőket írja le. Ezek olyan összetevők, amelyek feladata az MRTK bemeneti rendszerének kiterjesztése egy adott mögöttes rendszerrel való együttműködéssel. Egy szolgáltatóra példa az Windows Mixed Reality szolgáltató, amelynek feladata, hogy a mögöttes Windows Mixed Reality API-kkal beszéljen, majd az ezekből az API-kból származó adatokat mrTK-specifikus bemeneti fogalmakká fordítsa az alábbiakban. Egy másik példa az OpenVR-szolgáltató (amelynek feladata, hogy beszéljen az OpenVR API-k Unity-absztrakt verziójával, majd lefordítsa ezeket az adatokat MRTK bemeneti fogalmakká).

  • Vezérlő

    Fizikai vezérlő ábrázolása (legyen szó akár 6 szabadságfokú vezérlőről, holoLens 1 stílusú kéz kéz kézmozdulat támogatásával, teljesen csuklós kézről, ugrásmozdulat-vezérlőről stb.). A vezérlőket az eszközkezelők generálják (azaz a WMR-eszközkezelő létrehoz egy vezérlőt, és kezeli annak élettartamát, amikor megjelenik egy csuklós kéz).

  • Mutató

    A vezérlők mutatókkal kommunikálnak a játékobjektumokkal. Például a közel interakciós mutató felelős annak észleléséért, hogy a kéz (amely egy vezérlő) közel van-e azokhoz az objektumokhoz, amelyek "közel interakcióként" hirdetik magukat. A mutatókra más példák a teleportálás vagy a távoli mutató (azaz a felületi kézsugaras mutató), amelyek far raycast-okat használnak a felhasználó fegyverhosszánál hosszabb tartalmakkal való kapcsolatfelvételhez.

    A mutatókat az eszközkezelő hozza létre, majd egy bemeneti forráshoz csatolja. A vezérlő összes mutatójának lekéréséhez tegye a következőt: controller.InputSource.Pointers

    Vegye figyelembe, hogy egy vezérlő egyszerre több különböző mutatóval is társítható. Annak biztosítása érdekében, hogy ez ne alakuljon át káoszba, van egy mutatóközvetítő, amely szabályozza, hogy mely mutatók legyenek aktívak (például a közvetítő letiltja a távoli interakciós mutatókat, ha közel interakciót észlel).

  • Fókusz

    A kurzoresemények a fókuszban lévő objektumoknak lesznek elküldve. A fókusz kiválasztása a mutató típusától függően változik; a kézi sugármutató raycast-okat fog használni, míg a poke mutató gömbképeket használ. Az objektumoknak implementálniuk kell az IMixedRealityFocusHandlert a fókusz fogadásához. A szűretlen mutatóesemények fogadásához globálisan regisztrálhat objektumokat, de ez a megközelítés nem ajánlott.

    A fókuszban lévő objektumok frissítését biztosító összetevő a FókuszProvider

  • Kurzor

    Egy mutatóhoz társított entitás, amely további vizuális jelzéseket ad a mutató interakciója körül. A FingerCursor például egy gyűrűt jelenít meg az ujj körül, és elforgathatja a gyűrűt, ha az ujja közel van a "közel használható" objektumokhoz. Egy mutató egyszerre egyetlen kurzorhoz társítható.

  • Interakció és manipuláció

    Az objektumok felcímkézhetők interakciós vagy manipulációs szkripttel. Ez lehet egy Interactable, vagy valami hasonló/NearInteractionGrabbableManipulationHandler.

    Például a NearInteractionGrabbable és a NearInteractionTouchable lehetővé teszi bizonyos mutatók (különösen a közeli interakciós mutatók) számára, hogy megtudják, mely objektumokra lehet összpontosítani.

    Az Interactable és a ManipulationHandler olyan összetevőkre mutatnak be példákat, amelyek a felhasználói felület vizualizációinak módosításához vagy a játékobjektumok áthelyezéséhez/méretezéséhez/elforgatásához figyelik a mutatóeseményeket.

Az alábbi képen az MRTK bemeneti verem magas szintű buildelése látható (alulról felfelé):

Bemeneti rendszer diagramja