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:

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 .

Perfil de Gesto

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

    1. Segure o toque:
      • iniciar manipulação
    2. Segure o toque além de HoldStartDuration:
      • iniciar a espera
    3. Toque na versão:
      • Retenção completa
      • Manipulação completa
  • "Mover":

    1. Segure o toque:
      • iniciar manipulação
    2. Segure o toque além de HoldStartDuration:
      • iniciar a espera
    3. Mova a mão para além de NavigationStartThreshold:
      • cancelar Retençã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 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.