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:

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 .

Perfil de Gesto

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 respetivo deltaPosition.
  • Vector3 - Gesto de posição 3D. Produzido pelo HoloLens para informar:
  • 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":

    1. Mantenha premido o toque:
      • iniciar Manipulação
    2. Mantenha premido o toque para além de HoldStartDuration:
      • iniciar Suspensão
    3. Toque na versão:
      • concluir Suspensão
      • manipulação completa
  • "Mover":

    1. Mantenha premido o toque:
      • iniciar Manipulação
    2. Mantenha premido o toque para além de HoldStartDuration:
      • iniciar Suspensão
    3. Mover a mão para além de NavigationStartThreshold:
      • cancelar Suspensão
      • iniciar Navegação
    4. Toque na versão:
      • manipulação completa
      • navegação completa

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.