Coroutine é uma função extremamente útil, mas muito confusa para iniciantes na programação.
Pois, muito tem dificuldades de entender seu funcionamento e qual o momento ideal de se usar ela.
E neste artigo vamos te ajudar a compreender melhor as vantagens e desvantagens das Coroutines em seus códigos.
O que é Coroutine?
As Corrotinas, são um recurso mais flexível na Unity, que permite executar tarefas de maneira mais maleável.
Por exemplo, os comandos executados no Update, são lidos de maneira sequencial, passando linha por linha.
E isso a cada frame, ou seja, o compilador irá passar linha por linha executando tudo que puder ser lido.
Mas, a Coroutine permite uma manipulação maior nesse fluxo de execução feito pelo compilador.
E isso permite executar várias tarefas simultaneamente, controlar o tempo de execução de cada tarefa.
E até pausar ou retomar a execução de uma tarefa, pois, também é possível adicionar verificações e condições para tal.
Porém, simplificando a Corotina é uma função onde você consegue pausa-lá por um tempo desejado.
E seu retomo pode ser a partir de um tempo específico que deseje, uma condição, etc.
Quando usar Coroutine?
São úteis para criar sequências de ações, animações, efeitos temporizados e outros comportamentos que ocorrem durante um período.
Por exemplo, você atira uma bullet e que ela viaje por 2.5 segundos, e depois perca a força.
E aqui você pausará a leitura da Corrotina por esse tempo, e ao retornar, irá retirar a força da bullet.
E você deve usar Coroutines quando precisar executar várias tarefas simultaneamente.
Mas, ainda controlar o tempo de execução de cada tarefa, pausar e retomar a execução dela.
E outro exemplo excelente são telas de loads assíncronos em jogos, para carregar outras cenas.
Pois, você executar uma tela de Loading, ao mesmo tempo, em que o sistema recarrega o cenário da próxima fase.
E liberar a cena para o jogador, apenas quando o carregamento for completo, isso é feito por meio de Coroutines.
Como funcionam?
Coroutines são funções que utilizam a palavra-chave “IEnumerator” como tipo de retorno.
E dentro de uma coroutine, você pode usar a instrução “yield return” para pausar a execução da função.
E retomá-la no próximo frame ou após um intervalo de tempo específico que você deseje.
No exemplo da imagem, a coroutine “ExampleCoroutine” é iniciada no método “Start”.
E a coroutine exibe com um Debug: “Início da Coroutine” no console.
E, em seguida, espera 2 segundos usando “yield return new WaitForSeconds(2)”.
Pois, após o intervalo de tempo, a coroutine retoma a execução e exibe “Coroutine retomada após 2 segundos” no console.
Ou seja, ela executou, debugou uma mensagem, esperou passar 2 segundos, e debugou outra mensagem.
Porém, um outro detalhe é que você pode adicionar mais Yield dentro dessa função, quantos precisar.
E existem outras vantagens como, por exemplo, poder passar parâmetros esperados ao inciar a corrotina.
E você pode até, interromper uma Corrotina que esteja em execução esperando em segundo plano.
Por exemplo, com o comando StopCoroutine(“MinhaCoroutine”), para uma em específico.
Mas, também o StopAllCoroutines, que interrompe todas as corrotinas em execução no objeto em que é chamada.
Em geral, as coroutines são uma ferramenta útil para criar comportamentos complexos e temporizados.
E ao dominar o uso de coroutines, você pode melhorar a qualidade e a eficiência de seus projetos.
E assim começar com testes mais simples e ao longo do tempo domina-la de maneira cada vez mais avançada!
Seja o primeiro a comentar.