Gestos – MRTK2
Os gestos são eventos de entrada baseados em mãos humanas. Existem dois tipos de dispositivos que geram eventos de entrada de gestos no MRTK:
Windows Mixed Reality dispositivos como o HoloLens. Isto descreve movimentos de pinching ("Air Tap") e gestos de toque e suspensão.
Para obter mais informações sobre gestos do HoloLens, veja a documentação Windows Mixed Reality Gestos.
WindowsMixedRealityDeviceManager
molda o Unity XR. WSA. Input.GestureRecognizer para consumir eventos de gestos do Unity a partir de dispositivos HoloLens.Dispositivos de ecrã tátil.
UnityTouchController
molda a classe Unity Touch que suporta ecrãs táteis físicos.
Ambas as origens de entrada utilizam o perfil Definições de Gestos para traduzir os eventos De Toque e Gesto do Unity, respetivamente, nas Ações de Entrada do MRTK. Este perfil pode ser encontrado no perfil Definições do Sistema de Entrada .
Eventos de gestos
Os eventos de gestos são recebidos através da implementação de uma das interfaces de processador de gestos: IMixedRealityGestureHandler
ou IMixedRealityGestureHandler<TYPE>
(consulte a tabela de processadores de eventos).
Veja Cena de Exemplo para obter um exemplo de implementação de um processador de eventos de gestos.
Ao implementar a versão genérica, os eventos OnGestureCompleted e OnGestureUpdated podem receber dados escritos dos seguintes tipos:
Vector2
- Gesto de posição 2D. Produzido por ecrãs táteis para informar sobre o respetivodeltaPosition
.Vector3
- Gesto de posição 3D. Produzido pelo HoloLens para informar:cumulativeDelta
de um evento de manipulaçãonormalizedOffset
de um evento de navegação
Quaternion
- Gesto de rotação 3D. Disponível para origens de entrada personalizadas, mas não atualmente produzida por nenhuma das existentes.MixedRealityPose
- Gesto de posição/rotação 3D combinado. Disponível para origens de entrada personalizadas, mas não atualmente produzida por nenhuma das existentes.
Ordem dos eventos
Existem duas cadeias principais de eventos, consoante a entrada do utilizador:
"Hold":
- Mantenha premido o toque:
- iniciar Manipulação
- Mantenha premido o toque para além de HoldStartDuration:
- iniciar Suspensão
- Toque na versão:
- concluir Suspensão
- manipulação completa
- Mantenha premido o toque:
"Mover":
- Mantenha premido o toque:
- iniciar Manipulação
- Mantenha premido o toque para além de HoldStartDuration:
- iniciar Suspensão
- Mover a mão para além de NavigationStartThreshold:
- cancelar Suspensão
- iniciar Navegação
- Toque na versão:
- manipulação completa
- navegação completa
- Mantenha premido o toque:
Cena de exemplo
A cena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) mostra como utilizar o ponteiro Resultado para gerar um objeto na localização de acesso.
O GestureTester
script (Assets/MRTK/Examples/Demos/HandTracking/Script) é um exemplo de implementação para visualizar eventos de gestos através de GameObjects. As funções de processador alteram a cor dos objetos indicadores e apresentam o último evento gravado em objetos de texto na cena.