Gesta – MRTK2
Gesta jsou vstupní události založené na lidských rukou. Existují dva typy zařízení, která v MRTK vyvolávají události zadávání gest:
Windows Mixed Reality zařízení, jako je HoloLens. Popisuje pohyby stažení prstů (klepnutí ve vzduchu) a gesta klepnutí a podržení.
Další informace o gestech HoloLensu najdete v dokumentaci k gestům Windows Mixed Reality.
WindowsMixedRealityDeviceManager
zabalí Unity XR. WSA. Input.GestureRecognizer pro využívání událostí gest Unity ze zařízení HoloLens.Zařízení s dotykovou obrazovkou.
UnityTouchController
Zabalí třídu Unity Touch , která podporuje fyzické dotykové obrazovky.
Oba tyto vstupní zdroje používají profil Nastavení gest k překladu událostí Touch a Gesture Unity do vstupních akcí MRTK. Tento profil najdete v části Profil nastavení vstupního systému .
Události gest
Události gest se přijímají implementací jednoho z rozhraní obslužných rutin gest: IMixedRealityGestureHandler
nebo IMixedRealityGestureHandler<TYPE>
(viz tabulka obslužných rutin událostí).
Příklad implementace obslužné rutiny události gesta najdete v ukázkové scéně .
Při implementaci obecné verze mohou události OnGestureCompleted a OnGestureUpdated přijímat data typu následující typy:
Vector2
- 2D poziční gesto. Vyrobeno dotykovými obrazovkami, které informují o svýchdeltaPosition
zařízeních .Vector3
- 3D poziční gesto. Vyrobeno společností HoloLens s cílem informovat o:cumulativeDelta
události manipulacenormalizedOffset
události navigace
Quaternion
- Gesto otáčení ve 3D. K dispozici pro vlastní vstupní zdroje, ale aktuálně nevyráběné žádný z existujících zdrojů.MixedRealityPose
- Kombinované gesto pro 3D polohu/otočení. K dispozici pro vlastní vstupní zdroje, ale aktuálně nevyráběné žádný z existujících zdrojů.
Pořadí událostí
V závislosti na vstupu uživatele existují dva hlavní řetězy událostí:
"Hold":
- Podržte klepnutí:
- zahájit manipulaci
- Podržením klepnutí nad rámec HoldStartDuration:
- zahájit blokování
- Uvolnění klepnutí:
- úplné blokování
- kompletní manipulace
- Podržte klepnutí:
"Přesunout":
- Podržte klepnutí:
- zahájit manipulaci
- Podržením klepnutí nad rámec HoldStartDuration:
- zahájit blokování
- Přesunutí ruky za NavigationStartThreshold:
- zrušit blokování
- spuštění navigace
- Uvolnění klepnutí:
- kompletní manipulace
- kompletní navigace
- Podržte klepnutí:
Příklad scény
Scéna HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scene) ukazuje, jak použít výsledek ukazatele k vytvoření objektu v umístění, kde byl nalezen.
Skript GestureTester
(Assets/MRTK/Examples/Demos/HandTracking/Script) je ukázkovou implementací pro vizualizaci událostí gest přes GameObjects. Funkce obslužné rutiny mění barvu objektů indikátorů a zobrazují poslední zaznamenanou událost v textových objektech ve scéně.