Manipulador de objetos
O ObjectManipulator é o novo componente para o comportamento de manipulação, encontrado anteriormente em ManipulationHandler. O manipulador de objetos faz uma série de melhorias e simplificações. Esse componente é uma substituição para o manipulador de manipulação, que será preterido.
O script ObjectManipulator torna um objeto móvel, escalonável e giravel usando uma ou duas mãos. O manipulador de objeto pode ser configurado para controlar como o objeto responderá a várias entradas. O script deve funcionar com a maioria das formas de interação, como HoloLens 2 mão articulada, HoloLens 2 raios de mão, HoloLens 1 olhar e gestos e entrada imersiva do controlador de movimento do headset.
Como usar o manipulador de objetos
Para usar o manipulador de objeto, primeiro adicione o componente de ObjectManipulator
script a um GameObject. Certifique-se de também adicionar um colisor ao objeto, correspondendo aos seus limites agarráveis.
Para fazer com que o objeto responda à entrada quase articulada da mão, adicione o NearInteractionGrabbable
script também.
O comportamento físico pode ser habilitado para o manipulador de objeto adicionando um componente de corpo rígido ao objeto. O comportamento físico habilitado pela adição desse componente é discutido com mais detalhes em Física e colisões.
Além disso, a manipulação pode ser restrita adicionando componentes de restrição de manipulação ao objeto. Esses são componentes especiais que funcionam com manipulação e alteram o comportamento de manipulação de alguma forma.
Propriedades e campos do inspetor

Propriedades gerais
Transformação do host
A transformação do objeto que será manipulada. O padrão é o objeto do componente.
Tipo de manipulação
Especifica se o objeto pode ser manipulado usando uma mão ou duas mãos. Como essa propriedade é um sinalizador, ambas as opções podem ser selecionadas.
- Uma mão: habilita a manipulação de uma mão se selecionada.
- Duas mãos: habilita a manipulação de duas mãos se selecionada.
Permitir manipulação distante
Especifica se a manipulação pode ser feita usando interação distante com ponteiros.
Propriedades de manipulação com uma mão
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 próxima. Essas opções só funcionam para mãos articuladas.
- Girar sobre o centro de objetos: o objeto gira usando a rotação da mão, mas sobre o ponto central do objeto. O objeto parecerá mover-se menos à medida que gira, mas pode haver uma sensação de desconexão entre a mão e o objeto. Mais útil para interação distante.
- Girar sobre o ponto de captura: Girar o objeto com a mão sobre o ponto de captura entre o dedo indicador e o polegar. Ele deve sentir como se o objeto estivesse sendo mantido pela mão.
Modo de rotação de uma mão distante
Especifica como o objeto se comportará quando ele estiver sendo agarrado com uma mão à distância. Essas opções só funcionam para mãos articuladas.
- Girar sobre o centro de objetos: girar o objeto usando a rotação da mão, mas sobre o ponto central do objeto. Útil para inspecionar a uma distância sem que o centro de objetos se mova à medida que o objeto gira.
- Girar sobre o ponto de captura: girar o objeto usando a rotação da mão, mas sobre o ponto de ocorrência do raio de ponteiro. Útil para inspeção.
Propriedades de manipulação de duas mãos
Tipo de manipulação de duas mãos
Especifica como a manipulação de duas mãos pode transformar um objeto. Como essa propriedade é um sinalizador, qualquer número de opções pode ser selecionado.
- Mover: Mover é permitido se selecionado.
- Escala: o dimensionamento é permitido se selecionado.
- Girar: a rotação é permitida se selecionada.
Restrições
Habilitar restrições
Essa configuração habilitará o gerenciador de restrições vinculado. As alterações de transformação serão processadas por restrições registradas no gerenciador de restrições selecionado.
Gerenciador de restrição
A lista suspensa permite selecionar qualquer um dos gerentes de restrição anexados. O manipulador de objetos garante que haja um gerenciador de restrições anexado o tempo todo. Observe que vários componentes do mesmo tipo aparecerão com o mesmo nome no Unity. Para facilitar a distinção entre vários gerentes de restrição no mesmo objeto, as opções disponíveis mostrarão uma dica sobre a configuração do gerenciador de restrições selecionado (seleção manual ou de restrição automática).
Ir para o componente
A seleção do gerenciador de restrições vem com um botão Ir para o componente . Esse botão fará com que o inspetor role até o componente selecionado para que ele possa ser configurado.
Física
Configurações nesta seção aparecem somente quando o objeto tem um componente RigidBody.
Comportamento da versão
Especifique quais propriedades físicas um objeto manipulado deve manter após a versão. Como essa propriedade é um sinalizador, ambas as opções podem ser selecionadas.
- Manter Velocidade: quando o objeto for liberado, se essa opção for selecionada, ele manterá sua velocidade linear.
- Mantenha Angular Velocity: quando o objeto for liberado, se essa opção for selecionada, ele manterá sua velocidade angular.
Usar forças para quase manipulação
Se as forças físicas são usadas para mover o objeto ao executar manipulações próximas. Definir isso como false fará com que o objeto se sinta mais diretamente conectado à mão dos usuários. Definir isso como true honrará a massa e a inércia do objeto, mas pode parecer que o objeto está conectado por meio de uma mola. O padrão é false.
Suavização
Suavizando muito
Se a suavização independente da taxa de quadros está habilitada para interações distantes. A suavização distante está habilitada por padrão.
Suavizando perto
Se a suavização independente da taxa de quadros está habilitada para interações próximas. A suavização próxima é desabilitada por padrão porque o efeito pode ser percebido como sendo "desconectado" da mão.
Suavizando ativo
Obsoleto e será removido em uma versão futura. Os aplicativos devem usar SmoothingFar, SmoothingNear ou uma combinação dos dois.
Mover a hora do lerp
Quantidade de suavização a ser aplicada ao movimento. Suavização de 0 significa sem suavização. Valor máximo significa nenhuma alteração no valor.
Girar a hora do lerp
Quantidade de suavização a ser aplicada à rotação. Suavização de 0 significa sem suavização. Valor máximo significa nenhuma alteração no valor.
Tempo de lerp de escala
Quantidade de suavização a ser aplicada à escala. Suavização de 0 significa sem suavização. Valor máximo significa nenhuma alteração no valor.
Eventos de manipulação
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 focaliza o manipulável, próximo ou distante.
- OnHoverEnded: é acionado quando uma mão/controlador passa o mouse no manipulável, próximo ou distante.
A ordem de fogo do evento para manipulação é:
OnHoverStarted ->OnManipulationStarted ->OnManipulationEnded ->OnHoverEnded
Se não houver manipulação, você ainda obterá eventos de focalização com a seguinte ordem de incêndio:
OnHoverStarted ->OnHoverEnded
Física e colisões
O comportamento físico pode ser habilitado adicionando um componente rigidbody ao mesmo objeto que um manipulador de objeto. Isso não só permite a configuração do comportamento de versão acima, como também permite colisões. Sem um componente rigidbody, as colisões não se comportam corretamente durante a manipulação:
- Colisões entre um objeto manipulado e um colisor estático (ou seja, um objeto com um colisor, mas nenhum corpo rígido) não funcionam, o objeto manipulado passa diretamente pelo colisor estático não afetado.
- Colisões entre um objeto manipulado e um corpo rígido (ou seja, um objeto com um colisor e um corpo rígido) fazem com que o corpo rígido tenha uma resposta de colisão, mas a resposta é precipitada e não natural. Também não há resposta de colisão no objeto manipulado.
Quando um corpo rígido é adicionado, as colisões devem funcionar corretamente.
Sem rigidbody

Com rigidbody

Elásticos (experimental)
Os elásticos podem ser usados ao manipular objetos por meio do manipulador de objetos. Observe que o sistema elástico ainda está em estado experimental. Para habilitar elásticos, vincule um componente do gerenciador de elásticos existente ou crie e vincule um novo gerenciador de elásticos por meio do Add Elastics Manager
botão.
