Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alfredo1995/recyclable-scroll-view
Recyclable ScrollView Infinite on Unity Engine, optimized to handle a large number of elements without compromising performance.
https://github.com/alfredo1995/recyclable-scroll-view
csharp infinite-scroll-view scroll-view unity unity-engine
Last synced: about 18 hours ago
JSON representation
Recyclable ScrollView Infinite on Unity Engine, optimized to handle a large number of elements without compromising performance.
- Host: GitHub
- URL: https://github.com/alfredo1995/recyclable-scroll-view
- Owner: alfredo1995
- Created: 2024-05-07T13:39:39.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-09-13T11:27:52.000Z (2 months ago)
- Last Synced: 2024-09-14T01:23:19.456Z (2 months ago)
- Topics: csharp, infinite-scroll-view, scroll-view, unity, unity-engine
- Language: ShaderLab
- Homepage:
- Size: 10.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
https://github.com/alfredo1995/recyclable-scroll-view/assets/71193893/a8eeb87b-7a91-49e0-b19a-96e2ca49db6d
Implementação do ScrollView infinito e reciclável para aplicações WebGL móveis e desktop
ScrollRectPool.cs
Gerencia um pool de objetos (representados por GameObjects) em uma ScrollRect, permitindo ativar objetos conforme necessário para evitar a criação e destruição frequente de objetos, o que pode ser mais eficiente em termos de desempenho.Item.cs
Controla o comportamento de um item na cena, permitindo que ele seja ativado, desativado e tenha seu texto atualizado conforme necessário. Mantém controle sobre se o item está visível ou invisível, para gerenciamento do sistema de pool de objetos.
ItemList.csUso do ScriptableObject para criar um tipo de dado customizado chamado ItemList que esta sendo usado para armazenar uma lista de strings.
InfiniteScroll.cs
Lógica de rolagem infinita p/ uma lista de itens em um ScrollRect, movendo os itens p/ cima ou p/ baixo, e atualizando os itens visíveis com novos dados da lista de itens.
CheckVisibility.cs
Gerenciando a visibilidade dos itens em uma lista dentro de um ScrollRect, ativando e desativando (Object Pooling) os itens conforme eles entram e saem da área visível da lista (interage com o componente InfiniteScroll para lidar com a rolagem infinita da lista).
Arquitetura de Projeto (Design Baseado em Componentes) Responsabilidade Única
Cada componente ou classe tem uma única responsabilidade bem definida. Isso ajuda a manter o código mais organizado, fácil de entender, modificar e testar.
Técnicas de otimização aplicadas e resultados obtidos.
Técnica de otimização: Pooling de Objetos para reciclar elementos existentes em vez de instanciar novos objetos sempre que necessário.
Resultados obtidos: Evitando a alocação e desalocação frequente de memória, reduzindo a sobrecarga do coletor de lixo (garbage collector) e melhorando o desempenho geral da aplicaçãoTécnica de otimização: Singleton para Gerenciamento de Instância Única no script CheckVisibility para gerenciar uma instância única é uma prática eficiente, especialmente quando há necessidade de acesso global a uma única instância de um objeto.
Resultados obtidos : Evitando múltiplas alocações desnecessárias de memória para o mesmo objeto e simplifica o gerenciamento de estado global.Técnica de otimização: Modularidade e Reutilização de Componentes UI. (Utilizando componentes pré-fabricados na criação dinâmica de itens com base em uma lista).
Resultados obtidos : Otimização do conjunto de objetos e a garantia de que os elementos não sejam usados são desabilitados quando eles estão fora da tela para reduzir o uso de recursos.
Técnica de otimização: RectTransforms em Vez de Transforms para elementos de interface do usuário
Resultados obtidos : Mais eficiente no uso de RectTransforms em termos de desempenho para elementos da UI, especialmente quando se trata de posicionamento e dimensionamento dentro de um layout de UI.Técnica de otimização: Métodos Eficientes para Verificar Visibilidade (O método OnScrollRectValueChanged no script CheckVisibility usa métodos eficientes para verificar se um item está visível ou não, como calcular a posição do item e dos cantos visíveis da lista).
Resultados obtidos : Evitando cálculos desnecessários ou complexos que possam impactar negativamente o desempenho.
Execução do Projeto
Instalação do Editor Unity
instale o Unity Editor na versão 2022:3.27
Clone o repositório:
Encontre e selecione o método de clonagem desejado, como HTTPS ou SSH (Copy Clone URL)
Execução do aplicativo:
Acesse a URL abaixo para baixar e executar o arquivo APK (Android) ou IPA (iOS) em seu dispositivo.
> https://abre.ai/apk-scroll