Coleção de objetos de rolagem – MRTK2

Scrolling object collection

A coleção de objetos de rolagem MRTK é um componente de UX que permite a rolagem de conteúdo 3D por uma área visível contida. O movimento de rolagem pode ser disparado por interação de entrada próxima ou distante e por paginação discreta. Ele dá suporte a objetos interativos e não interativos.

Introdução à coleção de objetos de rolagem

Configurando a cena

  1. Crie uma nova cena do Unity.
  2. Adicione o MRTK à cena navegando até o Realidade Misturada Toolkit>Add para Cena e Configurar.

Configurando o objeto de rolagem

  1. Crie um objeto de jogo vazio na cena e altere sua posição para (0, 0, 1).

  2. Adicione um componente de coleção de objetos de rolagem ao objeto de jogo.

    Quando a coleção de objetos de rolagem for adicionada, um colisor de caixa e um componente tocável de interação próxima serão anexados automaticamente ao objeto de jogo raiz. Esses componentes permitem que o objeto de rolagem ouça eventos de entrada de interação próximos e distantes, como um toque de ponteiro ou clique.

    A coleção de objetos de rolagem mrtk tem dois elementos importantes que são criados como objetos de jogo filho sob a hierarquia de objetos de rolagem raiz:

    • Container - Todos os objetos de conteúdo de rolagem devem ser filhos do objeto de jogo de contêiner.
    • Clipping bounds - Se a máscara de conteúdo de rolagem estiver habilitada, o elemento de limites de recorte garantirá que apenas o conteúdo rolável dentro de seus limites esteja visível. O objeto de jogo de limites de recorte tem dois componentes: um colisor de caixa desabilitado e uma caixa de recorte.

Scrolling object collection elements

Adicionando conteúdo ao objeto de rolagem

A coleção de objetos de rolagem pode ser combinada com uma coleção de objetos de grade para layout de conteúdo em uma grade de elementos alinhados que têm tamanho uniforme e espaçamento.

  1. Crie um objeto de jogo vazio como um filho do contêiner de rolagem.
  2. Adicione um componente de coleção de objetos de grade ao objeto de jogo.
  3. Para uma rolagem vertical de coluna única, na guia inspetor, configure a coleção de objetos de grade da seguinte maneira:
    • Colunas num: 1
    • Layout: coluna e linha
    • Âncora: superior esquerda
  4. Altere a largura e a altura da célula de acordo com as dimensões dos objetos de conteúdo.
  5. Adicione os objetos de conteúdo como filhos do objeto de grade.
  6. Pressione a coleção de atualizações.

Grid layout

Importante

Qualquer material de objeto de conteúdo de rolagem deve usar o sombreador padrão MRTK para que o efeito de recorte na área visível funcione corretamente.

Observação

Se a máscara de conteúdo de rolagem estiver habilitada, a coleção de objetos de rolagem adicionará um componente de instância material a quaisquer objetos de conteúdo que tenham um renderizador anexado. Esse componente é usado para gerenciar o tempo de vida dos materiais instâncias e melhorar o desempenho da memória.

Configurando a área visível de rolagem

  1. Para rolagem vertical por uma única coluna de objetos, na guia inspetor, configure a coleção de objetos de rolagem da seguinte maneira:
    • Células por camada: 1
    • Escolha o número de camadas por página de acordo com o número desejado de linhas visíveis
  2. Altere a largura, a altura e a profundidade da célula da página de acordo com as dimensões dos objetos de conteúdo.

Observe como os objetos de conteúdo que estão fora da área visível de rolagem agora estão desabilitados, enquanto os objetos que cruzam o wireframe de rolagem podem ser parcialmente mascarados pelo primitivo de recorte.

Viewable area

Testando a coleção de objetos de rolagem no editor

  1. Pressione executar e segure a barra de espaço para mostrar uma mão de simulação de entrada.
  2. Mova a mão até que o colisor de rolagem ou qualquer conteúdo interativo de rolagem esteja em foco e dispare o movimento de rolagem clicando e arrastando para cima e para baixo com o mouse esquerdo.

Controlando o objeto de rolagem do código

A coleção de objetos de rolagem MRTK expõe alguns métodos públicos que permitem mover o contêiner de rolagem ajustando sua posição de acordo com a configuração de pagination propriedades.

Um exemplo de como acessar a interface de paginação da coleção de objetos de rolagem está disponível para uso na MRTK/Examples/Demos/ScrollingObjectCollection/Scripts pasta. O script de exemplo de paginação rolável pode ser vinculado a qualquer coleção de objetos de rolagem existente na cena. Em seguida, o script pode ser referenciado por componentes de cena que expõem eventos do Unity (por exemplo, botão MRTK).

public class ScrollablePagination : MonoBehaviour
{
    [SerializeField]
    private ScrollingObjectCollection scrollView;

    public void ScrollByTier(int amount)
    {
        scrollView.MoveByTiers(amount);
    }
}

Propriedades da coleção de objetos de rolagem

Geral Descrição
Direção da rolagem A direção na qual o conteúdo deve rolar.
Paginação Descrição
Células por camada Número de células em uma linha no modo de exibição de rolagem para cima ou número de células em uma coluna na exibição de rolagem esquerda-direita.
Camadas por página Número de camadas visíveis na área de rolagem.
Célula page Dimensões da célula de paginação.
Configurações avançadas Descrição
Modo de edição de máscara Edite modos para definir os limites de mascaramento da caixa de recorte. 'Auto' usa automaticamente valores de paginação. 'Manual' permite a manipulação direta do objeto da caixa de recorte.
Modo de edição do Colisor Edite modos para definir os limites do colisor de interação de rolagem. 'Auto' usa automaticamente valores de paginação. 'Manual' permite a manipulação direta do colisor.
Pode rolar Habilita/desabilita a rolagem com interação próxima/distante.
Usar na pré-renderização Alterna se o scrollingObjectCollection usará o evento Câmera OnPreRender para gerenciar a visibilidade do conteúdo.
Curva de paginação Curva de animação para paginação.
Comprimento da animação A quantidade de tempo (em segundos) que o PaginationCurve levará para avaliar.
Limite de rolagem delta da mão A distância, em metros, o ponteiro atual pode percorrer a direção da rolagem antes de disparar um arrasto de rolagem.
Distância de toque frontal Distância, em metros, para posicionar um plano xy local usado para verificar se uma interação de toque começou na frente da exibição de rolagem.
Limite de versão Retirar a quantidade, em metros, dos limites de rolagem necessários para a transição do toque envolvido para liberado.
Velocidade Descrição
Tipo de velocidade O tipo desejado de queda de velocidade para o rolagem.
Multiplicador de velocidade Quantidade de velocidade (extra) a ser aplicada ao scroller.
Amortecedor de velocidade Quantidade de falloff aplicada à velocidade.
Multiplicador de salto Multiplicador para adicionar mais salto ao overscroll de uma lista ao usar falloff por quadro ou falloff por item.
Opções de depuração Descrição
Máscara habilitada Modo de visibilidade do conteúdo de rolagem. O valor padrão mascarará todos os objetos fora da área visível de rolagem.
Mostrar planos de limite Se for verdadeiro, o editor renderizará os planos de limite de versão de toque ao redor dos limites de rolagem.
Paginação de depuração Use esta seção para depurar a paginação de rolagem durante o runtime.
Eventos DESCRIÇÃO
Ao clicar Disparado quando o colisor de tela de fundo de rolagem ou qualquer um de seus conteúdos interativos recebe um clique.
No toque iniciado Disparado quando o colisor de tela de fundo de rolagem ou qualquer um de seus conteúdos interativos recebe um toque de interação próximo.
Ao tocar terminou Disparado quando uma interação de toque ativa é encerrada quando o ponteiro de interação próxima cruza um plano de limite de liberação.
No momento em que o impulso começou Disparado quando o contêiner de rolagem começa a ser movido por interação, queda de velocidade ou paginação.
No momento em que o impulso terminou Disparado quando o contêiner de rolagem para de se mover por interação, queda de velocidade ou paginação.

Cena de exemplo de rolagem

A cena de exemplo ScrollingObjectCollection.unity consiste em três exemplos roláveis, cada um com uma configuração de falloff de velocidade diferente. A cena de exemplo contém paredes para mostrar o comportamento do posicionamento da superfície desabilitado por padrão na hierarquia. A cena de exemplo pode ser encontrada na MRTK/Examples/Demos/ScrollingObjectCollection/Scenes pasta.

Scrolling object collection example scene

Pré-fabricados de exemplo de rolagem

Para conveniência, dois pré-fabricados da coleção de objetos de rolagem estão disponíveis para uso. As pré-fabricados de exemplo podem ser encontradas na MRTK/Examples/Demos/ScrollingObjectCollection/Prefabs pasta.

Scrolling object collection prefabs

Confira também