Partilhar via


Ferramentas unityUI – MRTK3

O UnityUI pode não ser a primeira ferramenta em que os programadores de realidade mista pensam ao criar interfaces de utilizador 3D. No entanto, com alguns componentes e utilitários auxiliares, é possível criar interfaces de utilizador 3D apelativas e flexíveis no UnityUI.

Botões e controlos de deslize de exemplo da IU do Unity

Dica

É fácil criar estrangulamentos de desempenho ao criar o UnityUI. Antes de criar esquemas complexos do UnityUI, recomenda-se que leia este tutorial.

Sample

Veja o exemplo unityUI para obter demonstrações de vários componentes criados para o UnityUI.

Componentes de comportamento da IU

Os componentes abaixo ajudam na composição da IU, mas não são componentes gráficos visíveis.

ScaleMeshEffect

Nos componentes do UnityUI, a unity_ObjectToWorld matriz (ou UNITY_MATRIX_M no URP) não é a matriz de transformação da transformação local em que o componente Gráfico se encontra, mas sim a do respetivo Canvas principal. Muitos efeitos de sombreado nas Ferramentas de Gráficos exigem que a escala de objetos seja conhecida. Para resolver este problema, o ScaleMeshEffect.cs irá armazenar informações de dimensionamento em atributos de canal UV durante a construção da malha de IU.

Dica

Uma Tela ou CanvasRenderer nas Ferramentas Gráficas pedirá a adição de um ScaleMeshEffect.cs quando for necessário.

RectMask2DFast

O UnityUI tem um componente incorporado chamado RectMask2D. Normalmente, este componente é utilizado para mascarar uma pequena secção de uma área maior. Ao mascarar muitos objetos, este processo pode demorar muito tempo a abater objetos na CPU. Para evitar este estrangulamento, as Ferramentas Gráficas incluem um RectMask2DFast componente.

RectMask2DFast funciona da mesma forma RectMask2D que e é uma substituição recomendada. Se encontrar um problema em que o mascaramento não é atualizado depois de adicionar ou remover objetos, RectMask2DFast poderá ter de invocar manualmente uma atualização, como abaixo:

myRectMask2DFast.ForceClip = true;

Todas as Ferramentas Gráficas/Tela/ sombreados e o sombreado Ferramentas de Gráficos/Tela Padrão suportam RectMask2D, RectMask2DFaste RoundedRectMask2D.

Nota

As Ferramentas de Gráficos/Tela/ sombreados e o sombreado Ferramentas de Gráficos/Tela Padrãonão suportam a propriedade Softness em RectMask2D ou RectMask2DFast.

RoundedRectMask2D

RoundedRectMask2D derivar de e age de RectMask2DFast forma semelhante. A única diferença é que RoundedRectMask2D contém um valor de raio de canto para cantos arredondados. Este raio pode ser selecionado para todos os cantos ou cada canto individualmente.

Exemplo roundedRectMask2D com duas imagens

Nota

O instancing de material tem de ser controlado pelo utilizador. Ou seja, os materiais partilhados podem ser efetuados por RoundedRectMask2D.

Componentes gráficos da IU

Os componentes gráficos abaixo ajudam a adicionar dimensionalidade 3D a uma Tela.

CanvasElementRoundedRect

Este componente gera, de forma processual, uma malha de rect arredondada 3D que é, em seguida, atribuída ao fluxo de vértices do Canvas. Normalmente, este componente é utilizado para gerar malhas de backplate com o sombreado Graphics Tools/Canvas/Backplate .

CanvasElementRoundedRect exemplo backplate

CanvasElementBeveledRect

Tal como CanvasElementRoundedRect, este componente gera, de forma processual, um rect arredondado 3D, mas com arestas biseladas. Normalmente, este componente é utilizado para gerar malhas de chapas traseiras com o sombreado Ferramentas Gráficas/Tela/Biselado .

CanvasElementBeveledRect example (Exemplo canvasElementBeveledRect)

CanvasElementMesh

O componente MeshRenderer do Unity pode ser utilizado para apresentar malhas 3D no UnityUI, mas não respeita algumas das funcionalidades de esquema fornecidas pelo UnityUI. Para resolver estes problemas de esquema, existe o CanvasElementMesh componente .

O CanvasElementMesh componente utiliza uma malha de entrada e traduz-a num Graphic componente.

CanvasElementMesh example with rocket (Exemplo canvasElementMesh com foguetão)

Importante

A malha de entrada tem de ter a respetiva propriedade Leitura/Escrita ativada para que os vértices possam ser lidos dentro do script.

Animação

Para animar as propriedades do material unityUI, pode utilizar as classes CanvasMaterialAnimator... Para obter mais informações, veja a documentação de animação .

Para ajudar com o esquema de IU, existem vários itens de menu nas Ferramentas de Gráficos.

Ancorar a cantos e cantos a âncoras

Janela > Ferramentas de Gráficos > Ancora Âncoras > de Tela aos Cantos e Ferramentas > de Gráficos da Janela > Os Cantos das Âncoras > para Âncoras permitem-lhe alternar entre expressar o esquema no sistema de afixação e o sistema de âncora (restrição) inerente ao RectTransform. Isto pode ser útil ao mover-se entre esquemas de dimensionamento reativos e fixos.

Ver também