UniTask는 Unity 환경에서 async/await
을 효율적으로 사용할 수 있도록 만들어진 경량 비동기 처리 라이브러리이다.
기존의 .NET Task
는 Unity에서 사용할 경우 성능 저하(GC 발생, 느린 실행 등)가 발생하기 때문에, 이를 개선한 구조체 기반의 대체제가 UniTask이다.
즉, UniTask는 Unity 친화적이며 빠른 비동기 흐름을 위한 async/await
도구이다.
Unity에서는 씬 전환, 에셋 로딩, 네트워크 요청, UI 이벤트 처리 등 다양한 상황에서 시간 지연과 대기가 발생한다.
이러한 비동기 작업을 관리하기 위해 일반적으로 Coroutine
을 사용해왔지만, 복잡한 흐름 처리, 예외 처리, 값 반환에 제약이 있다.
Task
의 한계C#의 Task
는 async/await
과 함께 사용할 수 있는 표준 비동기 타입이다.
그러나 Unity에서는 다음과 같은 문제가 있다:
Task
는 클래스이므로 GC(가비지 컬렉션) 비용이 발생한다.UniTask는 Task
와 동일한 문법(async/await
)을 유지하면서도,