Manipulador de manipulação – MRTK2

Manipulador de manipulação

O script ManipulationHandler permite que um objeto seja tornado móvel, escalonável e girável usando uma ou duas mãos. A manipulação pode ser restrita para permitir apenas determinados tipos de transformação. O script funciona com vários tipos de entradas, incluindo HoloLens 2 entrada articulada da mão, raios manuais, entrada de gesto do HoloLens (1ª geração) e entrada imersiva do controlador de movimento do headset.

Como usar o manipulador de manipulação

Adicione o ManipulationHandler componente de script a um GameObject. Certifique-se de também adicionar um colisor ao objeto, correspondendo aos limites que podem ser capturados.

Para fazer com que o objeto responda à entrada de mão quase articulada, adicione o NearInteractionGrabbable script também.

Usando o manipulador de manipulação no editor do Unity

Propriedades do inspetor

Estrutura manipuladora de manipulação

Transformação do host Transformação que será arrastada. O padrão é o objeto do componente.

Tipo de manipulação Especifica se o objeto pode ser manipulado usando uma mão, duas mãos ou ambas.

  • Apenas uma mão
  • Somente duas mãos
  • Uma e duas mãos

Tipo de manipulação de duas mãos

  • Escala: somente o dimensionamento é permitido.
  • Girar: somente a rotação é permitida.
  • Mover Escala: a movimentação e o dimensionamento são permitidos.
  • Mover Girar: é permitido mover e girar.
  • Girar escala: a rotação e o dimensionamento são permitidos.
  • Mover Girar Escala: é permitido mover, girar e dimensionar.

Manipulador de manipulação

Permitir manipulação distante Especifica se a manipulação pode ser feita usando interação distante com ponteiros.

Modo de rotação de uma mão próximo Especifica como o objeto se comportará quando estiver sendo agarrado com uma mão/controlador próximo.

Modo de rotação de uma mão distante Especifica como o objeto se comportará quando ele estiver sendo agarrado com uma mão/controlador à distância.

Opções de modo de rotação de uma mão Especifica como o objeto girará quando ele estiver sendo agarrado com uma mão.

  • Manter a rotação original: não gira o objeto conforme ele está sendo movido
  • Manter a rotação para o usuário: mantém a rotação original do objeto para o eixo X/Y para o usuário
  • A gravidade alinhada mantém a rotação para o usuário: mantém a rotação original do objeto para o usuário, mas torna o objeto vertical. Útil para objetos com um controle de limites.
  • Usuário de detecção facial: garante que o objeto sempre enfrente o usuário. Útil para imagens fixas e painéis.
  • Face longe do usuário: garante que o objeto sempre fique longe do usuário. Útil para imagens fixas e painéis configurados de trás para frente.
  • Girar sobre o centro de objetos: só funciona para mãos/controladores articulados. Girar o objeto usando a rotação da mão/controlador, mas sobre o ponto central do objeto. Útil para inspeção à distância.
  • Girar sobre o ponto de captura: só funciona para mãos/controladores articulados. Girar o objeto como se ele estivesse sendo segurado pela mão/controlador. Útil para inspeção.

Comportamento da versão Quando um objeto é liberado, especifique seu comportamento de movimento físico. Requer que um componente rigidbody esteja nesse objeto.

  • Nothing
  • Tudo
  • Manter Velocidade
  • Manter a velocidade Angular

Restrições na rotação Especifica com qual eixo o objeto girará quando interagir.

  • Nenhum
  • Somente eixo X
  • Somente eixo Y
  • Somente eixo Z

Usar espaço local para restrição Uma alternância para alternar entre a aplicação de restrições em relação ao eixo do espaço do mundo ou ao eixo do espaço local.

Restrições de movimentação

  • Nenhum
  • Corrigir distância da cabeça

Suavização ativa Especifica se a suavização está ativa.

Suavizando a quantidade uma mão Quantidade de suavização a ser aplicada ao movimento, escala, rotação. Suavização de 0 significa que não há suavização. Valor máximo significa que nenhuma alteração no valor.

Eventos

O manipulador de manipulação fornece os seguintes eventos:

  • OnManipulationStarted: acionado quando a manipulação é iniciada.
  • OnManipulationEnded: dispara quando a manipulação termina.
  • OnHoverStarted: é acionado quando uma mão/controlador passa o mouse sobre o manipulável, próximo ou distante.
  • OnHoverEnded: é acionado quando uma mão/controlador passa o mouse sobre o manipulável, próximo ou distante.