Alaprendszer – MRTK2
A bemeneti rendszer középpontjában az InputSystem áll, amely az MRTK-hoz társított összes bemeneti funkció inicializálásáért és működtetéséért felelős szolgáltatás.
Megjegyzés
Feltételezzük, hogy az olvasók már elolvastak, és alapszintű ismereteket kaptak a terminológia szakaszról .
Ez a szolgáltatás a következőért felelős:
- A bemeneti rendszerprofil beolvasása
- A konfigurált adatszolgáltatók indítása (például
Windows Mixed Reality Device Manager
ésOpenVR Device Manager
). - A GazeProvider példányosítása, amely egy olyan összetevő, amely a HoloLens (1. generációs) stílusú tekintetinformációk biztosításáért felel a HoloLens 2 stílus szemnézési információi mellett.
- A FókuszProvider példányosítása, amely egy olyan összetevő, amely a fókuszsal rendelkező objektumok meghatározásáért felelős. Ezt részletesebben a dokumentáció mutatóinak és fókuszának szakaszában ismertetjük.
- Regisztrációs pontok biztosítása az összes bemeneti eseményhez ( globális figyelőként).
- Eseményküldési képességek biztosítása ezekhez a bemeneti eseményekhez.
Bemeneti események
A bemeneti események általában két különböző csatornán aktiválódnak:
Fókuszban lévő objektumok
Az események közvetlenül elküldhetők a fókuszt tartalmazó GameObject-nek. Egy objektum például rendelkezhet olyan szkripttel, amely implementálja a parancsprogramot IMixedRealityTouchHandler
.
Ez az objektum érintéses eseményeket kapna, amikor egy közeli kéz összpontosítja. Az ilyen típusú események "felfelé" haladnak a GameObject hierarchiában, amíg olyan GameObject-et nem talál, amely képes kezelni az eseményt.
Ehhez használja az ExecuteHierarchy parancsot az alapértelmezett bemeneti rendszer implementációjából.
Globális figyelők
Az események elküldhetők a globális figyelőknek. Az összes bemeneti eseményre regisztrálható a bemeneti rendszer interfészének IMixedRealityEventSystem
használatával. Javasoljuk, hogy a RegisterHandler metódust használja a globális események regisztrálásához – az elavult Register
függvény miatt a figyelők értesítést kapnak a MINDEN bemeneti eseményről, nem csak egy adott típusú bemeneti eseményről (ahol a típust az eseményfelület határozza meg).
Vegye figyelembe, hogy a tartalék figyelők egy másik típusú globális figyelők, amelyek szintén nem ajánlottak, mert minden olyan bemeneti eseményt megkapnak, amelyet nem kezeltek máshol a jelenetben.
Az eseményküldés sorrendje
Az eseményeket általában a következő módon küldi el a rendszer a figyelőknek. Vegye figyelembe, hogy ha az alábbi lépések bármelyike kezeli az eseményt, az eseményküldési folyamat leáll.
- Az eseményt a rendszer globális figyelőknek küldi el.
- A rendszer elküldi az eseményt a szűrt objektum modális párbeszédpaneljeire.
- A rendszer elküldi az eseményt a szűrt objektumnak.
- A rendszer elküldi az eseményt a tartalék figyelőknek.
Eszközkezelők és adatszolgáltatók
Ezek az entitások felelősek az alacsonyabb szintű API-kkal (például Windows Mixed Reality API-kkal vagy OpenVR API-kkal) való együttműködésért, és az ezekből a rendszerekből származó adatoknak az MRTK magasabb szintű bemeneti absztrakcióinak megfelelőkké alakításáért. Ők felelősek a vezérlők élettartamának észleléséért, létrehozásáért és kezeléséért.
Az eszközkezelő alapfolyamata a következőket foglalja magában:
- Az eszközkezelőt a bemeneti rendszer szolgáltatás példányosította.
- Az eszközkezelő regisztrál a mögöttes rendszerével (például a Windows Mixed Reality eszközkezelő regisztrál a bemeneti és kézmozdulati eseményekre.
- Az alapul szolgáló rendszerből felderített vezérlőket hoz létre (például a szolgáltató észlelheti a csuklós kezek jelenlétét)
- Az Update() hurokban hívja meg az UpdateController() parancsot a mögöttes rendszer új állapotának lekérdezéséhez és a vezérlő reprezentációjának frissítéséhez.