UniTask란?

Cygames가 세상에 선보인 라이브러리로

유니티용 async-await 통합 패키지

C#의 Task, async-await를 유니티에 맞게 최적화

그리고 사용하기 더편하도록 기능을 추가한 라이브러리

Unity의 스레드

Unity는 단일 스레드 모델을 사용하는 게임 엔진

기본 동작은 주요 스레드에서 실행되며, 게임 로직, 물리 업데이트, 그래픽 렌더링 등이 주 스레드에서 처리된다

하지만 멀티스레딩을 지원하는 상황이 있는데, 작업 스레드 풀을 사용하여 비동기 작업을 처리하기도 한다

작업 스레드 풀은 병렬 작업을 수행하고 결과를 주 스레드로 반환한다

작업 스레드 풀은 대표적으로 네트워크 통신, 파일 로딩, 압축 해제 등에 사용된다

UniTask의 장점

Unity에서 비동기 작업을 쉽게 다룰 수 있도록 도와주는 라이브러리

내부적으로 작업 스레드 풀을 활용하여 비동기 작업을 처리한다

예를 들어 UniTask를 사용하여 파일 로딩 작업을 처리하면 해당 작업은 작업 스레드 풀에서 실행되며, 주 스레드는 작업의 완료를 기다리거나 다른 작업을 처리할 수 있다