Botão — MRTK3

Botão Principal

Um botão dá ao usuário uma forma de acionar uma ação imediata. É um dos componentes mais fundamentais da realidade misturada e fornecer interações de botão satisfatórias e confiáveis é essencial para uma experiência de realidade misturada de qualidade. O MRTK fornece duas categorias de pré-fabricados de botão: baseado em tela e não baseado em Tela. Ambas as configurações usam o PressableButton script , uma subclasse de StatefulInteractable estendida para incluir comportamentos específicos aos botões.

Saiba mais sobre como funciona o sistema de interface do usuário do Canvas híbrido.

Cenas de exemplo

Se você estiver usando o projeto de modelo de desenvolvimento, várias cenas de exemplo estarão disponíveis que demonstram os pré-fabricados de botão disponíveis.

CanvasUITearSheet.unity mostra todas as variantes de pré-fabricado de botão baseadas em tela disponíveis no MRTK.

Folha de tear de tela

CanvasExample.unity mostra alguns exemplos de criação de layouts maiores usando os componentes baseados em Tela.

Cena de exemplo de tela

Pré-fabricados

Os botões baseados em tela são flexíveis e configuráveis e podem ser redimensionados para qualquer dimensão ou proporção. Dessa forma, apenas alguns pré-fabricados de botão são fornecidos.

  • EmptyButton fornece a superfície/frontplate pressionável, a placa de fundo holográfica e o efeito de brilho. Não há texto, ícone, rótulo ou outro conteúdo. Isso é para que controles mais abstratos semelhantes a botões possam ser criados como uma variante desse pré-fabricado sem interferir no conteúdo do texto ou do ícone.
  • ActionButton é um botão simples que inclui um ícone, texto e um rótulo. Esses componentes individuais podem ser habilitados ou desabilitados e o sistema de layout se adaptará adequadamente.

Outros aprimoramentos podem ser adicionados ao botão, como o indicador de alternância de alternância. Os recursos que não se destinam a se mover com o frontplate devem ser anexados ao componente de placa de fundo.

Adicionando um botão de alternância

Estrutura

As diferentes partes de um ActionButton podem ser ativadas/desativadas para personalizar a aparência e o comportamento do botão. Dissecamos duas configurações possíveis diferentes para mostrar as diferentes partes do pré-fabricado do botão. O "retrocesso" não está visível nessas capturas de tela, pois o botão não está sendo pressionado ativamente.

Primeiro, uma configuração maior em que o objeto main Text está ativo e usa estilos embutidos para exibir um cabeçalho e um subtexto. Estrutura do botão Tela Grande Em segundo lugar, uma configuração menor em que o está ativo para mostrar uma descrição da ação abaixo do ícone. O objeto main Text está desabilitado. Estrutura do botão Tela Pequena

Classe PressableButton

A PressableButton classe é derivada de StatefulInteractable com funções novas e substituídas específicas aos botões. No Inspetor, você pode definir configurações relacionadas à imprensa volumétrica, além de todas as outras configurações configuráveis de StatefulInteractable. Captura de tela do inspetor PressableButton

Construindo a interface do usuário com botões

Ao criar menus ou painéis de interface do usuário com vários botões, é recomendável usar uma geometria de backplate compartilhada. Usando uma placa de fundo compartilhada, podemos reduzir o ruído visual e melhorar a usabilidade. Aqui estão alguns dos exemplos de como colocar botões sobre a placa de fundo compartilhada.

Construindo a interface do usuário 1

Construindo a interface do usuário 2

Construindo a interface do usuário 3

Componentes adicionais

Para referência, aqui estão alguns componentes adicionais responsáveis por lidar com aspectos de visuais de botão e funcionalidade:

  • O pulso da placa frontal visual observado quando o botão é selecionado é manipulado por um InteractablePulse componente.
  • O ícone de botão pode ser definido como um ícone do MRTK usando FontIconSelector.
  • Opcionalmente, um RectTransformColliderFitter pode ser usado em botões do Canvas para se ajustar BoxCollider ao seu RectTransform. Esse componente está desabilitado por padrão para desempenho.