Gestor de restrições

O gestor de restrições permite aplicar um conjunto de componentes de restrição a uma transformação. Podem ser tomados em consideração componentes do tipo TransformConstraint que estejam ligados ao objeto do jogo. Por predefinição, o gestor de restrições recolherá automaticamente todos os componentes de restrição ligados ao objeto do jogo e aplica-os em transformações processadas. No entanto, os utilizadores podem optar por configurar manualmente a lista de restrições aplicadas e permitir a aplicação de apenas um subconjunto de restrições anexas.

Atualmente, os seguintes elementos MRTK UX estão a apoiar o gestor de restrições:

Propriedades e campos de inspetor

O gestor de restrições pode ser operado em dois modos:

  • Seleção de restrições automáticas
  • Seleção de restrições manuais

Seleção de restrições automáticas

Seleção Automática

O modo predefinido do gestor de restrições, a seleção de restrições automáticas, fornecerá uma lista de todos os componentes de restrição anexados, bem como ir para os botões e um botão de restrição de adicionar.

Adicionar restrição ao objeto do jogo

Este botão permite que um componente de restrição seja adicionado diretamente do inspetor gestor de restrições. Todos os tipos de restrições de um projeto devem ser visíveis aqui. Consulte os constrangimentos de transformação para mais informações.

Ir para o componente

Todos os constrangimentos encontrados no objeto serão listados aqui com um botão de componente Go. Este botão fará com que o inspetor percorra para o componente de restrição selecionado para que possa ser configurado.

Seleção de restrições manuais

Seleção Manual

Se o gestor de restrições estiver definido para o modo manual, apenas os constrangimentos que estão ligados na lista de restrições são processados e aplicados à transformação. A lista apresentada apenas mostrará os constrangimentos selecionados pelo utilizador, bem como irá a botões ou opções para remover ou adicionar entradas. Ao ativar o modo manual pela primeira vez, o gestor de restrições preencherá a lista todos os componentes disponíveis como ponto de partida para a seleção de componentes de restrição anexados.

Remover a entrada

Isto remove a entrada da lista selecionada manualmente. Note que esta opção não removerá o componente de restrição do objeto do jogo. Os componentes de restrição devem ser sempre removidos manualmente para garantir que não quebrou acidentalmente qualquer outro componente referente a este componente.

Adicionar entrada

A entrada de adicionar abrirá um dropdown mostrando todos os componentes de restrição disponíveis que ainda não estão na lista manual. Clicando em qualquer uma das entradas que o componente será adicionado à seleção de restrições manuais.

Adicionar novo constrangimento

Esta opção irá adicionar um componente do tipo selecionado ao objeto do jogo e adicionar o componente de restrição recém-criado à lista de restrições manuais.

Transformar constrangimentos

Os constrangimentos podem ser usados para limitar a manipulação de alguma forma. Por exemplo, algumas aplicações podem necessitar de rotação, mas também requerem que o objeto permaneça na vertical. Neste caso, RotationAxisConstraint pode-se adicionar um ao objeto e utilizado para limitar a rotação à rotação do eixo y. O MRTK fornece uma série de constrangimentos, todos descritos abaixo.

Também é possível definir novos constrangimentos e usá-los para criar comportamentos de manipulação únicos que possam ser necessários para algumas aplicações. Para isso, crie um script que herda TransformConstraint e implemente a propriedade abstrata ConstraintType e o método abstrato. ApplyConstraint Ao adicionar um novo constrangimento ao objeto, deve limitar a manipulação na forma como foi definido. Esta nova restrição também deve aparecer na seleção automática do gestor de restrições ou adicionar a queda de entrada no modo manual.

Todos os constrangimentos fornecidos pela MRTK partilham as seguintes propriedades:

Tipo de mão

Especifica se o constrangimento é usado para uma mão, duas mãos ou ambos os tipos de manipulação. Como esta propriedade é uma bandeira, ambas as opções podem ser selecionadas.

  • Uma mão: A restrição será utilizada durante a manipulação de uma mão, se selecionada.
  • Duas mãos: A restrição será utilizada durante a manipulação de duas mãos se selecionada.

Tipo de proximidade

Especifica se a restrição é usada para fins próximos, distantes ou ambos os tipos de manipulação. Como esta propriedade é uma bandeira, ambas as opções podem ser selecionadas.

  • Perto:A restrição será utilizada durante a quase manipulação se for selecionada.
  • Longe: A restrição será utilizada durante a manipulação de longe se for selecionada.

FaceUserConstraint

Utilizador de rosto de constrangimento

Quando esta restrição for fixada a um objeto, a rotação será limitada para que o objeto fique sempre virado para o utilizador. Isto é útil para ardósias ou painéis. As propriedades FaceUserConstraint para são as seguintes:

Cara de distância

O objeto fica virado para longe do utilizador se for verdade.

ConsequiânciaConstrata

Restrição Distâncias fixas

Esta restrição fixa a distância entre o objeto manipulado e outro objeto transforma-se no arranque da manipulação. Isto é útil para comportamentos como a fixação da distância do objeto manipulado à transformação da cabeça. As propriedades FixedDistanceConstraint para são as seguintes:

Transformação de restrição

Esta é a outra transformação a que o objeto manipulado terá uma distância fixa. Os predefinições para a câmara transformam-se.

FixedRotationToUserConstraint

Rotação Fixa

Esta restrição corrige a rotação relativa entre o utilizador e o objeto manipulado enquanto este está a ser manipulado. Isto é útil para ardósias ou painéis, pois garante que o objeto manipulado mostra sempre a mesma face ao utilizador como no início da manipulação. O FixedRotationToUserConstraint não tem propriedades únicas.

FixedRotationToWorldConstraint

Rotação fixa para o mundo

Esta restrição corrige a rotação global do objeto manipulado enquanto está a ser manipulado. Isto pode ser útil nos casos em que nenhuma rotação deve ser transmitida por manipulação. O FixedRotationToWorldConstraint não tem propriedades únicas:

Manter AConstração de Empresas

Manter tamanho aparente

Quando esta restrição é anexada a um objeto, por muito que o objeto esteja do utilizador, manterá o mesmo tamanho aparente para o utilizador (ou seja, ocupará a mesma proporção do campo de visão do utilizador). Isto pode ser usado para garantir que uma ardósia ou painel de texto permanece legível durante a manipulação. O MaintainApparentSizeConstraint não tem propriedades únicas:

MoveAxisConstraint

Eixo de movimento de restrição

Esta restrição pode ser usada para corrigir ao longo dos eixos que um objeto manipulado pode ser movido. Isto pode ser útil para manipular objetos sobre a superfície de um plano, ou ao longo de uma linha. As propriedades MoveAxisConstraint para são as seguintes:

Restrição ao movimento

Especifica quais eixos para impedir o movimento. Por defeito, estes eixos serão globais e não locais, mas isso pode ser alterado abaixo. Como esta propriedade é uma bandeira, qualquer número de opções podem ser selecionadas.

  • Eixo X: O movimento ao longo do eixo x é limitado se for selecionado.
  • Eixo Y: O movimento ao longo do eixo y é limitado se for selecionado.
  • Eixo Z: O movimento ao longo do eixo z é limitado se for selecionado.

Use o espaço local para constrangimentos

Irá restringir os eixos de transformação locais do objeto manipulado, se for verdade. Falso por defeito.

RotaçãoAxisConstraint

Eixo de rotação de restrições

Esta restrição pode ser usada para corrigir quais eixos um objeto manipulado pode ser rodado. Isto pode ser útil para manter um objeto manipulado na vertical, mas ainda assim permitir rotações de eixo y, por exemplo. As propriedades RotationAxisConstraint para são as seguintes:

Restrição na rotação

Especifica quais eixos para evitar a rotação. Por defeito, estes eixos serão globais e não locais, mas isso pode ser alterado abaixo. Como esta propriedade é uma bandeira, qualquer número de opções podem ser selecionadas.

  • Eixo Y: A rotação sobre o eixo y é limitada se selecionada.
  • Eixo Z: A rotação sobre o eixo z é limitada se selecionada.
  • Eixo X: A rotação sobre o eixo x é limitada se selecionada.

Use o espaço local para constrangimentos

Irá restringir os eixos de transformação locais do objeto manipulado, se for verdade. Falso por defeito.

MinMaxScaleConstraint

Min Max Constatint

Esta restrição permite definir valores mínimos e máximos para a escala do objeto manipulado. Isto é útil para evitar que os utilizadores escalonem um objeto demasiado pequeno ou muito grande. As propriedades MinMaxScaleConstraint para são as seguintes:

Escala mínima

O valor da escala mínima durante a manipulação.

Escala máxima

O valor máximo da escala durante a manipulação.

Relativamente ao estado inicial

Se forem verdadeiros, os valores acima serão interpretados em relação à escala inicial dos objetos. Caso contrário, serão interpretados como valores de escala absoluta.