Ordem de Execução já ouviu esse termo? Você sabe qual a importância de entender sobre esse assunto?
Nesse artigo você vai entender como esse assunto pode te ajudar a corrigir bugs, por exemplo.
Pois, conhecer a execução de script na Unity, vai te dar um conhecimento profundo sobre o funcionamento da Engine.
O que é Ordem de Execução?
Assim como qualquer software a Unity tem uma ordem pré definida que ele segue ao iniciar a sua execução.
E isso logicamente se faz necessário para que tudo funciona de maneira perfeita e sem problemas.
Por exemplo, você não consegue aplicar uma força em um objeto chamado Player, sem antes referencia-lo.
Pois, a Unity precisa saber quem é esse objeto Player, pra poder aplicar essa força, caso contrario receberemos um erro.
E na sua própria inicialização existe essa ordem, que dita qual função executa primeiro.
E você precisa entender para primeiro saber qual a melhor função usar em certos momentos.
Mas, principalmente porque essa também é a ordem em que o seu próprio jogo inicializará na maquina do jogador.
Ordem de Execução básica na Unity
A ordem de execução dos scripts no Unity segue uma sequência específica de eventos.
E são chamados durante o ciclo do jogo e abaixo estão os principais eventos na ordem em que são executados:
Awake():
É chamado quando o script é carregado ou quando um objeto que contém o script é instanciado.
OnEnable():
É chamado quando o objeto que contém o script é ativado.
Start():
É chamado no primeiro frame em que o script está habilitado, antes de qualquer função Update().
FixedUpdate():
Chamado a cada intervalo fixo de tempo, independentemente da taxa de quadros.
E é útil para lidar com a física e outras simulações que requerem atualizações consistentes.
Update():
É chamado a cada frame e é usado para atualizar a lógica do jogo.
LateUpdate():
É chamado após todas as funções Update() terem sido executadas.
E é útil para ajustar a câmera ou outros objetos que dependem da posição de outros objetos.
OnDisable():
É chamado quando o objeto que contém o script é desativado.
OnDestroy():
É chamado quando o objeto que contém o script é destruído.
E essa é a ordem básica de execução dos eventos no Unity.
Mas, existem outros eventos específicos relacionados à física, renderização.
E também outros sistemas, porém, esses são os principais eventos que você usará ao criar scripts no Unity.
Clique aqui para visitar a documentação oficial da Unity sobre a Ordem de execução.
Ordem de Execução: Inicialização
Eventos de inicialização são os primeiros a serem chamados no ciclo de vida do jogo.
Awake, OnEnable e Start, por exemplo, permitem configurar objetos e referências antes do jogo começar a rodar.
E o Awake, é chamado quando o script é carregado ou quando um objeto que contém o script é instanciado.
E o OnEnable, é chamado quando o objeto que contém o script é ativado em cena.
Mas o Start, é chamado no primeiro frame em que o script está habilitado, antes de qualquer Update.
E a maior ventagem dessas funções é fazer as referências manuais de scripts e componentes do jogo.
Ordem de Execução: Eventos de Atualização
A atualização de quadros é o coração da lógica do jogo, onde a maior parte da interação e atualização ocorre.
E o FixedUpdate, Update e LateUpdate são eventos de atualização de quadros que controlam o comportamento do jogo.
E o FixedUpdate, é chamado a cada intervalo fixo de tempo, sendo útil para lidar com a física do jogo.
Mas, o Update é chamado literalmente a cada frame, ou seja, FPS do game.
E é usado para atualizar a lógica do jogo, sendo preferencialmente escolhido para captura de inputs.
Porém, o LateUpdate, é chamado após todas as funções Updates, terem sido executadas.
Muito útil para ajustar objetos que dependem da posição de outros objetos, por exemplo, câmera.
Ordem de Execução: Eventos de Desativação
OnDisable e OnDestroy, são chamados quando o objeto que contém o script é desativado ou destruído.
E esses eventos são úteis para limpar recursos e garantir que os objetos sejam removidos corretamente do jogo.
E ao utilizar a ordem de execução em diferentes situações, como animações, física e IA.
É importante entender como os eventos interagem entre si.
Pois, algumas dicas e boas práticas ao usar a ordem de execução incluem evitar a execução de códigos complexos.
E demorados no Update(), pois, isso pode afetar negativamente a taxa de quadros do jogo.
E, além disso, é importante organizar seu código de forma clara e modular.
Pois, assim, facilitará a compreensão e manutenção da lógica do jogo.
Assista logo abaixo um vídeo extremamente completo sobre o assunto:
Seja o primeiro a comentar.