top of page

Usar Animator na UI da Unity causa problemas de performance?

  • Foto do escritor: Abnner Urzedo
    Abnner Urzedo
  • 21 de out. de 2024
  • 2 min de leitura

Atualizado: 22 de out. de 2024

Bem vindos ao primeiro post do blog da Urz Games!


A um tempo atrás, especialmente de 2019 para trás, houveram várias discussões sobre o uso do Animator para animações de UI, especialmente em dispositivos móveis. O que acontece é que muitos desenvolvedores notaram uma notável quantidade de chamadas de renderização no profiler de seus jogos, relacionadas ao CanvasRenderer, e consequentemente um perda de performance.


Não demorou para descobrirem que o culpado disso era o Animator. Por causa da maneira que esse sistema funcionava, o Animator marcava o Canvas como 'dirt ' o que forçava a atualização de seus componentes, mesmo que nada estivesse acontecendo de fato. Isso gerava, processamento de CPU desnecessário e uma grande quantidade de Garbage Collector.


A solução encontrada, foi usar a técnica de Tweening, uma maneira de fazer uma transição entre dois estados ou valores. Nisso, surgiram muitas ferramentas, como a bem conhecida DOTween, que são leves e tem um bom fluxo para alterar propriedades como posição, escala e cores, ou seja, tudo que você precisa para fazer animações da HUD.


Mas ai, a Unity trouxe na atualização 2019.3, mais especificamente na 2019.3.0f5, uma grande atualização que visava ser o começo da correção desse problema da interação Animation-HUD. Nas notas de atualização, tem o seguinte texto:


Unity2019ReleaseNote

Vemos que eles corrigiram um dos principais problemas nesta atualização.


Após isso, vieram outras melhorias nas versões mais recentes da Unity, incluindo otimizações no sistemas de UI, melhorias no Animator e nos gerenciamentos de recálculos.


Dito tudo isso, a pergunta que fica é, usar Animator na HUD vai prejudicar meu projeto? E a resposta mais direta é, não, a depender a versão do seu projeto.


Mas outro questionamento surgiu entre muitos fóruns de desenvolvedores: vale a pena usar o Animator na HUD?


Ora, se as animações de UI, no geral, são tão simples, envolvendo muitas vezes apenas escala, posição e no máximo cores, por que usar o um motor de animação complexo como o Animator para isso?


Essa é uma discussão bem válida, visto que se você já usou alguma ferramenta de Tweening, provavelmente, assim como muitos desenvolvedores, gostou muito do quão customizável e simples é de usá-la. Além disso, ela permite que o controle de valores seja mais preciso, visto que, os valores são controlados por script, característica essa que inclusive faz com que o Tweening se encaixe melhor na sua arquitetura de projeto.


Mas isso faz com o Animator seja pior? De modo algum. Mas vale lembrar que a função do Animator é trabalhar em animações complexas, e quando você decide usá-lo na HUD, tenha em mente que estará usando um baita de um sistema inteiro, para fazer ações e cálculos, que no geral, são simples.


Então, para concluir este assunto, quando usar um ou outro? A resposta é, depende:


  • Se sua UI requer animações complexas e sequenciais, o Animator ainda é uma escolha viável, especialmente com as otimizações da Unity. Ele oferece flexibilidade e controle detalhado sobre as transições de estado.


  • Para animações simples como mover, escalar ou mudar a cor de um botão, Tweening é mais eficiente e fácil de implementar.


  • Se você usa uma versão anterior a 2019, NÃO USE O ANIMATOR.


Gostou do conteúdo?

Considere seguir nossa página, logo traremos mais assuntos como este.


 
 
 

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
©2024 Urz – All Rights Reserved
bottom of page