Sobre o projeto
Particle Effect For UGUI (também chamado UI Particle) é um pacote Unity de mob-sakai que permite que efeitos ParticleSystem sejam renderizados como parte da hierarquia Unity UI (uGUI). Foi criado para resolver o problema antigo de exibir efeitos de partículas dentro de máscaras de UI e ordená-los corretamente ao lado de outros elementos de UI.
O pacote funciona usando as APIs `MeshBake` e `MeshTrailBake` do Unity (disponíveis desde Unity 2018.2) para converter dados de partículas em geometria de malha que o CanvasRenderer pode exibir diretamente. Isso elimina a necessidade das soluções alternativas tradicionais que exigiam Câmeras separadas, RenderTextures ou Canvases extras, que frequentemente causavam sobrecarga de desempenho e artefatos visuais.
Recursos principais incluem:
- **Suporte a máscaras**: Funciona com componentes `Mask` e `RectMask2D` quando usado com shaders compatíveis.
- **Ordenável**: Partículas respeitam a ordem de índice entre irmãos ao lado de outros elementos de UI.
- **Suporte ao módulo Trail**: Compatibilidade total com o módulo Trail do ParticleSystem.
- **Alfa do CanvasGroup**: Integra-se com configurações de transparência do CanvasGroup.
- **Sem alocações**: Projetado para evitar sobrecarga de coleta de lixo por quadro.
- **Qualquer modo de renderização de canvas**: Compatível com modos Overlay, World Space e Camera Space.
- **Suporte a pipelines de renderização**: Funciona com pipeline integrado, Universal Render Pipeline (URP) e High Definition Render Pipeline (HDRP).
- **Compartilhamento de malha**: Múltiplos efeitos idênticos podem compartilhar resultados de simulação, reduzindo significativamente o custo de desempenho ao exibir muitas partículas semelhantes.
- **Escala adaptativa**: Ajuste automático de escala quando a escala do Canvas muda devido à resolução da tela.
- **Modos de posição de emissão**: Escolha entre posições de emissão absolutas (espaço mundial) ou relativas (escala local).
- **UIParticleAttractor**: Um componente que puxa partículas em direção a uma posição alvo, com tipos de movimento e curvas configuráveis.
- **ParticleSystemPreviewer**: Um componente somente de editor para visualizar efeitos de partículas na visualização da Cena.
O pacote fornece três componentes principais:
1. **UIParticle** — O componente central. Anexe-o a um GameObject que tem ou terá um ParticleSystem. Ele gerencia a gravação e renderização de partículas no pipeline uGUI. Suporta animação de propriedades de material via AnimationClip, múltiplos materiais e multiplicadores de escala de tempo.
2. **UIParticleAttractor** — Um componente opcional que atrai partículas de um ParticleSystem especificado em direção a um ponto de destino, com velocidade configurável, tipo de movimento (linear, suave ou esférico) e eventos de conclusão.
3. **ParticleSystemPreviewer** — Ajudante somente de editor que gera um ParticleSystem temporário para visualização quando o GameObject está selecionado na visualização da Cena. Não incluído em builds.
A instalação é suportada via OpenUPM (`openupm add com.coffee.ui-particle`), UPM a partir de URL git, ou como pacote incorporado. O pacote requer Unity 2018.3 ou posterior.
Limitações de shader: O pacote não suporta a maioria dos shaders integrados, exceto `UI/Default`. Shaders personalizados devem incluir suporte a stencil para máscaras, e no Unity 2018–2019, os componentes zw de UV são descartados, o que pode afetar alguns shaders. A abordagem recomendada é usar os shaders integrados `UI/Additive` ou `UI/Default`, ou criar um shader personalizado seguindo o modelo baseado em stencil fornecido na documentação.
Para desempenho, exibir muitas cópias do mesmo efeito se beneficia muito do recurso Mesh Sharing, que deduplica a simulação e reduz draw calls. Sem compartilhamento de malha, o UIParticle usa menos objetos do que ParticleSystems brutos no espaço UI, mas ainda é mais caro do que um ParticleSystem padrão usado fora da UI.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.