Gestos — MRTK2
Gestos são eventos de entrada baseados em mãos humanas. Há dois tipos de dispositivos que geram eventos de entrada de gesto no MRTK:
Windows Mixed Reality dispositivos como o HoloLens. Isso descreve movimentos de pinçamento ("Air Tap") e gestos de toque e retenção.
Para obter mais informações sobre gestos do HoloLens, consulte a documentação Windows Mixed Reality Gestos.
WindowsMixedRealityDeviceManager
encapsula o XR do Unity. WSA. Input.GestureRecognizer para consumir eventos de gesto do Unity de dispositivos HoloLens.Dispositivos de tela sensível ao toque.
UnityTouchController
encapsula a classe Touch do Unity que dá suporte a telas sensíveis ao toque físicas.
Ambas as fontes de entrada usam o perfil Configurações de Gesto para traduzir os eventos de Toque e Gesto do Unity, respectivamente, em Ações de Entrada do MRTK. Esse perfil pode ser encontrado no perfil Configurações do Sistema de Entrada .
Eventos de gesto
Os eventos de gesto são recebidos implementando uma das interfaces do manipulador de gestos: IMixedRealityGestureHandler
ou IMixedRealityGestureHandler<TYPE>
(consulte tabela de manipuladores de eventos).
Consulte Cena de exemplo para obter um exemplo de implementação de um manipulador de eventos de gesto.
Ao implementar a versão genérica, os eventos OnGestureCompleted e OnGestureUpdated podem receber dados tipados dos seguintes tipos:
Vector2
- Gesto de posição 2D. Produzido por telas sensíveis ao toque para informar sobre seudeltaPosition
.Vector3
- Gesto de posição 3D. Produzido pelo HoloLens para informar sobre:cumulativeDelta
de um evento de manipulaçãonormalizedOffset
de um evento de navegação
Quaternion
- Gesto de rotação 3D. Disponível para fontes de entrada personalizadas, mas não produzidas atualmente por nenhuma das existentes.MixedRealityPose
- Gesto combinado de rotação/posição 3D. Disponível para fontes de entrada personalizadas, mas não produzidas atualmente por nenhuma das existentes.
Ordem dos eventos
Há duas cadeias principais de eventos, dependendo da entrada do usuário:
"Hold":
- Segure o toque:
- iniciar manipulação
- Segure o toque além de HoldStartDuration:
- iniciar a espera
- Toque na versão:
- Retenção completa
- Manipulação completa
- Segure o toque:
"Mover":
- Segure o toque:
- iniciar manipulação
- Segure o toque além de HoldStartDuration:
- iniciar a espera
- Mova a mão para além de NavigationStartThreshold:
- cancelar Retenção
- iniciar Navegação
- Toque na versão:
- Manipulação completa
- Navegação completa
- Segure o toque:
Cena de exemplo
A cena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) mostra como usar o ponteiro Resultado para gerar um objeto no local de ocorrência.
O GestureTester
script (Assets/MRTK/Examples/Demos/HandTracking/Script) é uma implementação de exemplo para visualizar eventos de gesto por meio de GameObjects. As funções do manipulador alteram a cor dos objetos indicadores e exibem o último evento gravado em objetos de texto na cena.