Gester – MRTK2
Gester är indatahändelser baserade på mänskliga händer. Det finns två typer av enheter som genererar gestindatahändelser i MRTK:
Windows Mixed Reality enheter som HoloLens. Detta beskriver dra ihop rörelser ("Air Tap") och tap-and-hold gester.
Mer information om HoloLens-gester finns i dokumentationen om Windows Mixed Reality Gester.
WindowsMixedRealityDeviceManager
omsluter Unity XR. WSA. Input.GestureRecognizer för att använda Unitys gesthändelser från HoloLens-enheter.Pekskärmsenheter.
UnityTouchController
omsluter Unity Touch-klassen som stöder fysiska pekskärmar.
Båda dessa indatakällor använder profilen Gestinställningar för att översätta Unitys Touch- respektive Gesture-händelser till MRTK:s indataåtgärder. Den här profilen finns under profilen Inställningar för indatasystem .
Gesthändelser
Gesthändelser tas emot genom att implementera ett av gesthanterargränssnitten: IMixedRealityGestureHandler
eller IMixedRealityGestureHandler<TYPE>
(se tabell med händelsehanterare).
Se Exempelscen för en exempelimplementering av en gesthändelsehanterare.
När du implementerar den allmänna versionen kan händelserna OnGestureCompleted och OnGestureUpdated ta emot typifierade data av följande typer:
Vector2
- 2D-position gest. Produceras av pekskärmar för att informera om derasdeltaPosition
.Vector3
- 3D-position gest. Producerad av HoloLens för att informera om:cumulativeDelta
av en manipulationshändelsenormalizedOffset
av en navigeringshändelse
Quaternion
- 3D-rotationsgest. Tillgänglig för anpassade indatakällor men som för närvarande inte produceras av någon av de befintliga.MixedRealityPose
- Kombinerad 3D-position/rotationsgest. Tillgänglig för anpassade indatakällor men som för närvarande inte produceras av någon av de befintliga.
Händelseordning
Det finns två huvudkedjor av händelser, beroende på användarindata:
"Hold":
- Håll ned tryck:
- starta manipulering
- Håll ned tryckningen bortom HoldStartDuration:
- starta Undantag
- Släpp tryck:
- fullständigt undantag
- fullständig manipulation
- Håll ned tryck:
"Flytta":
- Håll ned tryck:
- starta manipulering
- Håll ned tryckningen bortom HoldStartDuration:
- starta Undantag
- Flytta handen bortom NavigeringStartThreshold:
- avbryt undantag
- starta navigering
- Släpp tryck:
- fullständig manipulation
- fullständig navigering
- Håll ned tryck:
Exempelscen
Scenen HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) visar hur du använder pekarresultatet för att skapa ett objekt på träffplatsen.
Skriptet GestureTester
(Assets/MRTK/Examples/Demos/HandTracking/Script) är ett exempel på implementering för att visualisera gesthändelser via GameObjects. Hanterarfunktionerna ändrar färgen på indikatorobjekt och visar den senast inspelade händelsen i textobjekt i scenen.