Manipulador de manipulação — MRTK2
O script ManipulationHandler permite que um objeto seja tornado móvel, escalonável e rotativo usando uma ou duas mãos. A manipulação pode ser restrita para que ela permita apenas determinados tipos de transformação. O script funciona com vários tipos de entradas, incluindo HoloLens entrada de mão articulada 2, raios manuais, entrada de gesto de HoloLens (1ª geração) e entrada imersiva do controlador de movimento de fone de ouvido.
Como usar o manipulador de manipulação
Adicione o ManipulationHandler
componente de script a um GameObject. Adicione também um colisor ao objeto, correspondendo aos limites que podem ser capturados.
Para fazer o objeto responder à entrada de mão quase articulada, adicione o NearInteractionGrabbable
script também.
Propriedades do inspetor

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.
- Somente uma mão
- Somente duas mãos
- Um e dois entregues
Tipo de manipulação de duas mãos
- Escala: somente o dimensionamento é permitido.
- Girar: somente rotação é permitida.
- Mover Escala: a movimentação e o dimensionamento são permitidos.
- Mover Girar: mover e girar é permitido.
- Girar Escala: é permitido girar e dimensionar.
- Mover Escala de Rotação: é permitido mover, girar e dimensionar.
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 ele 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 será girado quando ele estiver sendo agarrado com uma mão.
- Manter a rotação original: não gira o objeto enquanto 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
- Rotação de manutenção alinhada à gravidade 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 rosto: 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 se afaste 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 a Velocidade
- Manter Angular Velocidade
Restrições na rotação Especifica com qual eixo o objeto será girado quando interagido.
- 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 mundial ou ao eixo espacial local.
Restrições na movimentação
- Nenhum
- Corrigir distância da cabeça
Suavizando Ativo Especifica se a suavização está ativa.
Suavizando a quantidade uma mão Quantidade de suavização a ser aplicada à movimentação, escala, rotação. Suavização de 0 significa que não há suavização. Valor máximo significa nenhuma alteração no valor.
Eventos
O manipulador de manipulação fornece os seguintes eventos:
- OnManipulationStarted: acionado quando a manipulação é iniciada.
- OnManipulationEnded: é acionado 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 desabilitar o manipulável, próximo ou distante.