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


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 és OpenVR 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.

  1. Az eseményt a rendszer globális figyelőknek küldi el.
  2. A rendszer elküldi az eseményt a szűrt objektum modális párbeszédpaneljeire.
  3. A rendszer elküldi az eseményt a szűrt objektumnak.
  4. 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:

  1. Az eszközkezelőt a bemeneti rendszer szolgáltatás példányosította.
  2. 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.
  3. 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)
  4. 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.