Manipulador de objetos

Manipulador de objetos

O Objectmanipuletor é o novo componente para o comportamento de manipulação, encontrado anteriormente em ManipulationHandler. O objeto manipulador faz uma série de aprimoramentos e simplificações. Esse componente é uma substituição para o manipulador de manipulação, que será preterido.

O script Objectmanipuletor torna um objeto móvel, escalonável e rotatable usando uma ou duas mãos. O objeto manipulador 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 duas mãos, HoloLens raios de duas mãos, HoloLens 1 olhar e gestos e entrada do controlador de movimento do headset de imersão.

Como usar o objeto manipulador

Para usar o objeto manipulador, primeiro adicione o ObjectManipulator componente script a um gameobject. Certifique-se também de adicionar um colisor ao objeto, correspondendo seus limites de captura.

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

O comportamento da física pode ser habilitado para o objeto manipulador adicionando um componente rigidbody ao objeto. O comportamento de física habilitado adicionando esse componente é discutido com mais detalhes em física e colisões.

Assim, a manipulação pode ser restrita com a adição de componentes de restrição de manipulação ao objeto. Esses são componentes especiais que funcionam com a manipulação e alteram o comportamento de manipulação de alguma forma.

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

Propriedades e campos do Inspetor

Object Manipulator Structure

Propriedades gerais

Transformação de 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 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 a interação de longe com ponteiros.

Propriedades de manipulação de uma mão

Modo de rotação de um lado próximo

Especifica como o objeto se comportará quando estiver sendo capturado com uma mão perto de. Essas opções funcionam apenas para as mãos articuladas.

  • Girar sobre o centro de objetos: o objeto gira usando a rotação da mão, mas sobre o ponto central de objetos. O objeto parecerá ficar menos à medida que gira, mas pode haver uma sensação de desconexão entre a mão e o objeto. Mais útil para interações distantes.
  • Girar sobre o ponto de captura: gire o objeto com a mão sobre o ponto de captura entre o polegar e o dedo do índice. Deve parecer que o objeto está sendo mantido por mão.

Modo de rotação unidirecional distante

Especifica como o objeto se comportará quando estiver sendo capturado com uma mão à distância. Essas opções funcionam apenas para as mãos articuladas.

  • Girar sobre a central de objetos: girar o objeto usando a rotação da mão, mas sobre o ponto central de objetos. Útil para inspecionar em uma distância sem que o centro de objetos se mova enquanto o objeto gira.
  • Girar sobre o ponto de captura: girar o objeto usando a rotação da mão, mas sobre o ponto de acesso do ponteiro Ray. Útil para inspeção.

Duas propriedades de manipulação de mão

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: a movimentação é permitida se selecionada.
  • Escala: o dimensionamento é permitido se selecionado.
  • Girar: a rotação é permitida se selecionada.

Manipulador de manipulação

Restrições

Habilitar restrições

Essa configuração habilitará o Gerenciador de restriçãovinculado. As alterações de transformação serão processadas por restrições registradas para o Gerenciador de restriçãoselecionado.

Gerenciador de restrição

A lista suspensa permite selecionar qualquer um dos gerenciadores de restriçãoanexados. O objeto manipulador garante que há um Gerenciador de restrição anexado em todos os momentos. Observe que vários componentes do mesmo tipo serão exibidos com o mesmo nome no Unity. Para facilitar a distinção entre vários gerenciadores de restrição no mesmo objeto, as opções disponíveis mostrarão uma dica na configuração do Gerenciador de restrição selecionado (seleção de restrição manual ou automática).

Ir para o componente

A seleção do Gerenciador de restrição vem com um botão ir para componente . Esse botão fará com que o Inspetor role para o componente selecionado para que ele possa ser configurado.

Física

Configurações nesta seção aparecerão somente quando o objeto tiver um componente RigidBody.

Comportamento da versão

Especifique quais propriedades físicas um objeto manipulado deve manter após a liberação. Como essa propriedade é um sinalizador, ambas as opções podem ser selecionadas.

  • Manter a velocidade: quando o objeto for liberado, se essa opção for selecionada, ela manterá sua velocidade linear.
  • manter Angular velocidade: quando o objeto for liberado, se essa opção for selecionada, ela manterá sua velocidade Angular.

Usar forças para manipulação próxima

Se as forças de física são usadas para mover o objeto ao executar quase as manipulações. Definir isso como false fará com que o objeto se sinta mais diretamente conectado à mão dos usuários. Definir como true vai respeitar a massa e a inércia do objeto, mas pode parecer que o objeto está conectado por uma mola. O padrão é false.

Suavização

Suavizando a distância

Se a suavização independente de taxa de quadros está habilitada para interações distantes. A suavização está habilitada por padrão.

Suavizando ao lado

Se a suavização independente de 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 "desconectado" da mão.

Suavizando ativos

Obsoleto e será removido em uma versão futura. Os aplicativos devem usar SmoothingFar, SmoothingNear ou uma combinação dos dois.

Mover tempo Lerp

Quantidade de suavização a ser aplicada ao movimento. A suavização de 0 significa sem suavização. Valor máximo significa nenhuma alteração no valor.

Girar Lerp tempo

Quantidade de suavização a ser aplicada à rotação. A 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 nenhuma 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: é a incêndio quando a manipulação termina.
  • OnHoverStarted: é a incêndio quando uma mão/controlador passar o mouse no manipulador, próximo ou distante.
  • OnHoverEnded: é a incêndio quando uma mão/controlador destoca o manipulador, próximo ou distante.

A ordem de a incêndio do evento para manipulação é:

OnHoverStarted -> OnManipulationStarted -> OnManipulationEnded -> OnHoverEnded

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

OnHoverStarted -> OnHoverEnded

Física e colisões

O comportamento da física pode ser habilitado adicionando um componente rigidbody ao mesmo objeto que um manipulador de objetos. Isso não apenas habilita a configuração do comportamento de versão acima, mas 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 rigidbody (ou seja, um objeto com um colisor e um rigidbody) faz com que o rigidbody tenha uma resposta de colisão, mas a resposta é rápida e meso. Também não há resposta de colisão no objeto manipulado.

Quando um rigidbody é adicionado, as colisões devem funcionar corretamente.

Sem rigidbody

No Rigid Body

Com rigidbody

Rigid Body

Elástico (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 o elástico, vincule um componente existente do Elastics Manager ou crie e vincule um novo gerenciador de elásticos por meio do Add Elastics Manager botão.

Bounds Control Elastics

Confira também