Manipulador de objetos

Manipulador de objetos

O ObjectManipulator é o novo componente para o comportamento de manipulação, anteriormente encontrado no ManipulationHandler. O manipulador de objetos faz uma série de melhorias e simplificações. Este componente é um substituto para o manipulador de manipulação, que será depreciado.

O script ObjectManipulator torna um objeto móvel, escalável e rotativo usando uma ou duas mãos. O manipulador de objetos 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, tais como HoloLens 2 mão articulada, HoloLens 2 raios de mão, HoloLens 1 olhar e gestos e entrada imersiva do controlador de movimento dos auscultadores.

Como usar o manipulador de objetos

Para utilizar o manipulador de objetos, adicione primeiro o ObjectManipulator componente de script a um GameObject. Certifique-se de que também adiciona um colisor ao objeto, combinando os seus limites de agarrar.

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

O comportamento físico pode ser ativado para o manipulador de objetos adicionando um componente de corpo rígido ao objeto. O comportamento físico possibilitado pela adição deste componente é discutido em maior detalhe em Física e colisões.

Além disso, a manipulação pode ser limitada adicionando componentes de restrição de manipulação ao objeto. Estes são componentes especiais que funcionam com manipulação e alteram o comportamento de manipulação de alguma forma.

Usando o Manipulador de Manipulação no editor da Unidade

Propriedades e campos de inspetor

Estrutura manipuladora de objetos

Propriedades gerais

Transformação de hospedeiro

O objeto transforma-se que será manipulado. Predefinições no objeto do componente.

Tipo de manipulação

Especifica se o objeto pode ser manipulado com uma mão ou duas mãos. Como esta propriedade é uma bandeira, ambas as opções podem ser selecionadas.

  • Uma mão: Permite uma manipulação de uma mão se selecionada.
  • Duas mãos: Permite manipulação de duas mãos se selecionada.

Permitir manipulação distante

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

Propriedades de manipulação de uma mão

Modo de rotação de uma mão perto

Especifica como o objeto se comportará quando está a ser agarrado com uma mão perto. Estas opções só funcionam para mãos articuladas.

  • Rode sobre o centro do objeto: O objeto gira utilizando a rotação da mão, mas sobre o ponto central do objeto. O objeto parece 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 a interação distante.
  • Rode sobre o ponto de captura: Rode o objeto com a mão sobre o ponto de apreensão entre o polegar e o dedo indicador. Deve parecer que o objeto está a ser agarrado pela mão.

Modo de rotação de uma mão longe

Especifica como o objeto se comportará quando está a ser agarrado com uma mão à distância. Estas opções só funcionam para mãos articuladas.

  • Rode sobre o centro do objeto: Rode o objeto utilizando a rotação da mão, mas sobre o ponto central do objeto. Útil para inspecionar à distância sem que o centro do objeto se mova à medida que o objeto gira.
  • Rode sobre o ponto de captura: Rode o objeto utilizando a rotação da mão, mas sobre o ponto de impacto do raio ponteiro. Útil para a inspeção.

Duas propriedades de manipulação de mãos

Tipo de manipulação de duas mãos

Especifica como a manipulação de duas mãos pode transformar um objeto. Como esta propriedade é uma bandeira, qualquer número de opções podem ser selecionadas.

  • Movimento: É permitido mover-se se for selecionado.
  • Escala: A escala é permitida se selecionada.
  • Rotação: É permitida a rotação se selecionada.

Manipulador de Manipulação

Restrições

Permitir constrangimentos

Esta definição permitirá ao gestor de restriçõesligado . As alterações de transformação serão processadas por restrições registadas no gestor de restriçõesselecionado.

Gestor de restrições

A entrega permite selecionar qualquer um dos gestores de restrições anexados. O manipulador de objetos garante que há sempre um gestor de restrições ligado. Note que vários componentes do mesmo tipo aparecerão com o mesmo nome em unidade. Para facilitar a distinção entre vários gestores de restrições no mesmo objeto, as opções disponíveis mostrarão uma dica sobre a configuração do gestor de restrições selecionado (seleção de restrições manuais ou automáticas).

Ir para o componente

A seleção do gestor de restrições vem com um botão De Ir ao componente. Este botão fará com que o inspetor percorra para o componente selecionado para que possa ser configurado.

Física

Definições nesta secção só aparecem quando o objeto tem um componente RigidBody.

Comportamento de libertação

Especificar quais as propriedades físicas que um objeto manipulado deve manter após a libertação. Como esta propriedade é uma bandeira, ambas as opções podem ser selecionadas.

  • Manter a velocidade: Quando o objeto for libertado, se esta opção for selecionada, manterá a sua velocidade linear.
  • Mantenha Angular Velocidade: Quando o objeto for libertado, se esta opção for selecionada, manterá a sua velocidade angular.

Use forças para quase manipulação

Se as forças físicas são usadas para mover o objeto quando realizam manipulações próximas. Definir isto em falso fará com que o objeto se sinta mais diretamente ligado à mão dos utilizadores. Definir isto para verdade honrará a massa e a inércia do objeto, mas pode sentir como se o objeto estivesse conectado através de uma mola. O padrão é falso.

Suavização

Suavização longe

Se a suavização independente da taxa de fotogramas está ativada para interações longínquas. O seu alisamento extremo é ativado por defeito.

Suavização perto

Se a suavização independente da taxa de fotogramas está ativada para interações próximas. O alisamento próximo é desativado por padrão porque o efeito pode ser visto como sendo 'desligado' da mão.

Suavizar ativo

Obsoleto e será removido numa versão futura. As aplicações devem utilizar SmoothingFar, SmoothingNear ou uma combinação das duas.

Mover o tempo de lerp

Quantidade de alisamento para aplicar ao movimento. Suavizar 0 significa não suavizar. Valor máximo significa que não há alteração ao valor.

Rode o tempo de lerp

Quantidade de alisamento para aplicar à rotação. Suavizar 0 significa não suavizar. Valor máximo significa que não há alteração ao valor.

Tempo de lerp de escala

Quantidade de alisamento para aplicar à balança. Suavizar 0 significa não suavizar. Valor máximo significa que não há alteração ao valor.

Eventos de manipulação

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

  • OnManipulationStarted:Disparado quando a manipulação começar.
  • OnManipulationEnded: Dispara quando a manipulação termina.
  • OnHoverStarted: Dispara quando uma mão/controlador paira sobre o manipulador, perto ou longe.
  • OnHoverEnded: Dispara quando uma mão/controlador desaquece o manipulador, perto ou longe.

A ordem de manipulação do evento é:

OnHoverStarted - OnManipulationStarted - OnManipulationEnded - OnHoverEnded

Se não houver manipulação, ainda terá eventos de hover com a seguinte ordem de incêndio:

OnHoverStarted - OnHoverEnded

Física e colisões

O comportamento físico pode ser ativado adicionando um componente rígido ao mesmo objeto que um manipulador de objetos. Isto não só permite a configuração do comportamento de libertação acima, como também permite colisões. Sem um componente rígido, as colisões não se comportam corretamente durante a manipulação:

  • Colisões entre um objeto manipulado e um colisor estático (isto é, um objeto com um colisor mas sem corpo rígido) não funcionam, o objeto manipulado passa diretamente através do colisor estático não afetado.
  • Colisões entre um objeto manipulado e um corpo rígido (isto é, 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 é nervosa e pouco 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 corpo rígido

Sem Corpo Rígido

Com rigid body

Corpo Rígido

Elásticos (Experimental)

Os elásticos podem ser utilizados quando manipulam objetos através de manipuladores de objetos. Note que o sistema de elásticos ainda está em estado experimental. Para permitir elásticos, ligue um componente de gestor de elásticos existente ou crie e ligue um novo gestor de elásticos através do Add Elastics Manager botão.

Elásticos de controlo de limites

Ver também