Una biblioteca de tweens de alto rendimiento y sin asignaciones de memoria para Unity, que anima propiedades, pausas y secuencias con una sola línea de código.
Cysharp/UniTask
Integración de async/await sin asignaciones para Unity que permite esperar operaciones asíncronas, coroutines y tiempos del PlayerLoop.
- Estrellas
- 11,256
- Forks
- 1,012
- Issues abiertos
- 26
- Último commit
- hace 13 días
¿Qué es?
UniTask es un tipo de tarea específico para Unity y una integración de async/await. Ofrece UniTask<T>, basado en struct, con un generador personalizado de métodos async diseñado para evitar asignaciones, como alternativa al Task estándar. Permite esperar directamente las AsyncOperations, las coroutines y las solicitudes UnityWebRequest de Unity; además, las esperas basadas en fotogramas, como Yield, Delay y DelayFrame, sustituyen patrones habituales de coroutines.
La biblioteca se ejecuta íntegramente en el PlayerLoop de Unity, no en hilos, por lo que funciona en plataformas como WebGL y WASM. También incluye cancelación y tiempos de espera mediante CancellationToken, eventos de mensajes de MonoBehaviour y eventos de uGUI como flujos que se pueden esperar o recorrer de forma asíncrona, y LINQ asíncrono con Channel y AsyncReactiveProperty. Una ventana del editor TaskTracker ayuda a localizar tareas filtradas.
UniTask requiere Unity 2018.3 o posterior, con compatibilidad de C# 7.0 con generadores task-like, y se puede instalar mediante UPM usando una URL de git o desde una versión unitypackage.
Funciones clave
- 01UniTask<T> basado en struct, con un generador async personalizado diseñado para evitar asignaciones.
- 02Compatibilidad directa con await para AsyncOperation, UnityWebRequest y coroutines IEnumerator.
- 03Yield, Delay y DelayFrame basados en PlayerLoop sustituyen las esperas habituales de coroutines.
- 04Se ejecuta en PlayerLoop sin usar hilos, por lo que funciona en WebGL y WASM.
- 05CancellationToken, utilidades para tiempos de espera y una ventana del editor TaskTracker para depurar filtraciones.
- 06LINQ asíncrono, Channel y AsyncReactiveProperty para flujos asíncronos.
Casos de uso
- Sustituir coroutines en un juego de Unity por código async/await.
- Cargar recursos o escenas y realizar solicitudes web en secuencia o en paralelo dentro de Unity.
- Crear proyectos de Unity para WebGL, donde no hay hilos disponibles.
- Convertir clics de botones de uGUI o eventos de MonoBehaviour en flujos asíncronos que se puedan esperar.
Temas
Preguntas frecuentes
- ¿Qué es UniTask?
- Integración de async/await sin asignaciones para Unity que permite esperar operaciones asíncronas, coroutines y tiempos del PlayerLoop. UniTask es un tipo de tarea específico para Unity y una integración de async/await. Ofrece UniTask<T>, basado en struct, con un generador personalizado de métodos async diseñado para evitar asignaciones, como alternativa al Task estándar. Permite esperar directamente las AsyncOperations, las coroutines y las solicitudes UnityWebRequest de Unity; además, las esperas basadas en fotogramas, como Yield, Delay y DelayFrame, sustituyen patrones habituales de coroutines.
- ¿UniTask es gratuito? ¿Qué licencia tiene?
- UniTask es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿UniTask sigue mantenido?
- Mantenimiento activo. El último commit de UniTask fue el 6 oct 2026.
- ¿Para qué puedo usar UniTask?
- Sustituir coroutines en un juego de Unity por código async/await. Cargar recursos o escenas y realizar solicitudes web en secuencia o en paralelo dentro de Unity. Crear proyectos de Unity para WebGL, donde no hay hilos disponibles. Convertir clics de botones de uGUI o eventos de MonoBehaviour en flujos asíncronos que se puedan esperar.
- ¿Dónde consigo UniTask?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Cysharp/UniTask
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Integración oficial de Yarn Spinner para Unity, un sistema de diálogos con formato de guion para gestionar conversaciones en juegos.
Plugin para Unity Editor y runtime que permite a agentes de IA como Claude, Cursor y Copilot controlar Unity mediante herramientas MCP y skills generadas.
Consola uGUI para Unity que muestra registros en tiempo de ejecución y permite ejecutar comandos de depuración registrados en las builds.
Una plantilla de Claude Code que configura 49 agentes de IA especializados, 74 skills con comandos de barra y hooks de coordinación para gestionar un proyecto de videojuegos como un estudio.
Extensión de Unity que genera mallas de navegación 2D a partir de tilemaps, sprites y formas de Collider2D para el pathfinding en juegos con vista cenital.