Gestos — MRTK2
Os gestos são eventos de entrada baseados em mãos humanas. Existem dois tipos de dispositivos que geram eventos de entrada por gestos no MRTK:
Dispositivos Windows Mixed Reality, como HoloLens. Isto descreve movimentos de compressão ("Air Tap") e gestos de tocar e segurar.
Para obter mais informações sobre gestos HoloLens, consulte a documentação do Windows Mixed Reality Gestures.
WindowsMixedRealityDeviceManager
envolve o Unity XR. WSA. Input.GestureRecognizer para consumir eventos de gestos do Unity a partir de dispositivos HoloLens.Dispositivos com ecrã táctil.
UnityTouchController
envolve a classe Unity Touch que suporta telas sensíveis ao toque físicas.
Ambas as fontes de entrada usam o perfil Configurações de gestos para traduzir os eventos Toque e Gesto do Unity, respectivamente, em Ações de entrada do MRTK. Este perfil pode ser encontrado no perfil Configurações do sistema de entrada.
Eventos de gestos
Os eventos de gesto são recebidos implementando uma das interfaces do manipulador de gestos: IMixedRealityGestureHandler
ou IMixedRealityGestureHandler<TYPE>
(consulte a 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 digitados dos seguintes tipos:
Vector2
- Gesto de posição 2D. Produzido por telas sensíveis ao toque para informar sobre o seudeltaPosition
.Vector3
- Gesto de posição 3D. Produzido por 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 atualmente não produzidas por nenhuma das existentes.MixedRealityPose
- Gesto combinado de posição/rotação 3D. Disponível para fontes de entrada personalizadas, mas atualmente não produzidas por nenhuma das existentes.
Ordem dos eventos
Existem duas cadeias principais de eventos, dependendo da entrada do usuário:
"Esperar":
- Segure a torneira:
- iniciar Manipulação
- Segure o toque além de HoldStartDuration:
- iniciar Hold
- Torneira de lançamento:
- Retenção completa
- Manipulação completa
- Segure a torneira:
"Mover":
- Segure a torneira:
- iniciar Manipulação
- Segure o toque além de HoldStartDuration:
- iniciar Hold
- Vá além do NavigationStartThreshold:
- cancelar Hold
- iniciar navegação
- Torneira de lançamento:
- Manipulação completa
- Navegação completa
- Segure a torneira:
Cena de exemplo
A cena HandInteractionGestureEventsExample (Assets/MRTK/Examples/Demos/HandTracking/Scenes) mostra como usar o ponteiro Result para gerar um objeto no local atingido.
O GestureTester
script (Assets/MRTK/Examples/Demos/HandTracking/Script) é um exemplo de implementação para visualizar eventos de gestos via GameObjects. As funções do manipulador alteram a cor dos objetos indicadores e exibem o último evento gravado em objetos de texto na cena.