Uma biblioteca de tweens de alto desempenho e sem alocações para Unity, que anima propriedades, cria atrasos e sequências com uma linha de código.
Cysharp/UniTask
Integração de async/await sem alocações para Unity, que permite aguardar operações assíncronas, corrotinas e intervalos do PlayerLoop.
- Estrelas
- 11,256
- Forks
- 1,012
- Issues abertas
- 26
- Último commit
- há 13 dias
O que é?
UniTask é um tipo de task e uma integração de async/await específicos para Unity. Ele oferece um UniTask<T> baseado em struct, com um builder de métodos assíncronos personalizado que busca eliminar alocações, como alternativa ao Task padrão. É possível aguardar diretamente AsyncOperations, corrotinas e requisições UnityWebRequest, e esperas baseadas em frames, como Yield, Delay e DelayFrame, substituem padrões comuns de corrotinas.
A biblioteca funciona inteiramente no PlayerLoop do Unity, sem usar threads, por isso é compatível com plataformas como WebGL e WASM. Ela também oferece suporte a cancelamento e timeouts com CancellationToken, eventos de mensagens do MonoBehaviour e eventos do uGUI como streams aguardáveis ou async-enumerable, além de LINQ assíncrono com Channel e AsyncReactiveProperty. Uma janela do editor TaskTracker ajuda a localizar tasks vazadas.
UniTask requer Unity 2018.3 ou mais recente, com suporte a builders do tipo task do C# 7.0, e pode ser instalado pelo UPM via URL do Git ou por uma versão unitypackage.
Recursos principais
- 01UniTask<T> baseado em struct, com um builder async personalizado projetado para não gerar alocações.
- 02Suporte direto a await para AsyncOperation, UnityWebRequest e corrotinas IEnumerator.
- 03Yield, Delay e DelayFrame baseados no PlayerLoop substituem esperas comuns de corrotinas.
- 04Funciona no PlayerLoop sem threads, sendo compatível com WebGL e WASM.
- 05CancellationToken, utilitários de timeout e uma janela do editor TaskTracker para depurar vazamentos.
- 06LINQ assíncrono, Channel e AsyncReactiveProperty para streams assíncronos.
Casos de uso
- Substituir corrotinas em um jogo Unity por código com async/await.
- Carregar assets ou cenas e fazer requisições web em sequência ou em paralelo dentro do Unity.
- Criar projetos Unity para WebGL, onde threads não estão disponíveis.
- Converter cliques em botões do uGUI ou eventos do MonoBehaviour em streams assíncronos aguardáveis.
Tópicos
Perguntas frequentes
- O que é UniTask?
- Integração de async/await sem alocações para Unity, que permite aguardar operações assíncronas, corrotinas e intervalos do PlayerLoop. UniTask é um tipo de task e uma integração de async/await específicos para Unity. Ele oferece um UniTask<T> baseado em struct, com um builder de métodos assíncronos personalizado que busca eliminar alocações, como alternativa ao Task padrão. É possível aguardar diretamente AsyncOperations, corrotinas e requisições UnityWebRequest, e esperas baseadas em frames, como Yield, Delay e DelayFrame, substituem padrões comuns de corrotinas.
- UniTask é gratuito? Qual é a licença?
- UniTask é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- UniTask ainda é mantido?
- Manutenção ativa. O último commit de UniTask foi em 6 de out. de 2026.
- Para que posso usar UniTask?
- Substituir corrotinas em um jogo Unity por código com async/await. Carregar assets ou cenas e fazer requisições web em sequência ou em paralelo dentro do Unity. Criar projetos Unity para WebGL, onde threads não estão disponíveis. Converter cliques em botões do uGUI ou eventos do MonoBehaviour em streams assíncronos aguardáveis.
- Onde consigo UniTask?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Cysharp/UniTask
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Integração oficial do Yarn Spinner com Unity, um sistema de diálogos em formato de roteiro para conduzir conversas em jogos.
Plugin para o Unity Editor e para jogos em execução que permite a agentes de IA, como Claude, Cursor e Copilot, controlar o Unity por meio de ferramentas MCP e skills geradas.
Console in-game para Unity baseado em uGUI, que exibe logs em tempo de execução e permite executar comandos de debug registrados em builds.
Um template para Claude Code que configura 49 agentes de IA especializados, 74 skills de slash command e hooks de coordenação para tocar um projeto de jogo como um estúdio.
Uma extensão para Unity que gera malhas de navegação 2D a partir de tilemaps, sprites e formas de Collider2D para pathfinding em jogos top-down.