Unity에서 속성 애니메이션, 지연, 시퀀스를 한 줄로 구현하는 고성능 무할당 트윈 라이브러리입니다.
Cysharp/UniTask
Unity 비동기 작업, 코루틴, PlayerLoop 타이밍을 await할 수 있는 무할당 async/await 통합
- 스타
- 11,256
- 포크
- 1,012
- 열린 이슈
- 26
- 마지막 커밋
- 13일 전
어떤 프로젝트인가요?
UniTask는 Unity 전용 태스크 타입이자 async/await 통합 라이브러리입니다. 표준 Task의 대안으로, 할당을 없애는 것을 목표로 하는 사용자 지정 async 메서드 빌더와 struct 기반 UniTask<T>를 제공합니다. Unity의 AsyncOperations, 코루틴, UnityWebRequest 요청을 직접 await할 수 있으며, Yield, Delay, DelayFrame 같은 프레임 기반 대기로 일반적인 코루틴 패턴을 대체할 수 있습니다.
이 라이브러리는 스레드가 아니라 Unity의 PlayerLoop에서만 실행되므로 WebGL, WASM 같은 플랫폼에서도 동작합니다. CancellationToken을 통한 취소와 시간 제한도 지원하며, MonoBehaviour 메시지 이벤트와 uGUI 이벤트를 await 가능한 스트림 또는 비동기 열거 가능 스트림으로 사용할 수 있습니다. Channel 및 AsyncReactiveProperty를 이용한 비동기 LINQ도 제공합니다. TaskTracker 에디터 창을 사용하면 누수된 태스크를 찾을 수 있습니다.
UniTask를 사용하려면 C# 7.0 task-like builder를 지원하는 Unity 2018.3 이상이 필요합니다. UPM git URL이나 unitypackage 릴리스로 설치할 수 있습니다.
핵심 기능
- 01할당을 없애도록 설계된 사용자 지정 async 빌더와 struct 기반 UniTask<T>를 제공합니다.
- 02AsyncOperation, UnityWebRequest, IEnumerator 코루틴을 직접 await할 수 있습니다.
- 03PlayerLoop 기반 Yield, Delay, DelayFrame으로 일반적인 코루틴 대기를 대체합니다.
- 04스레드 없이 PlayerLoop에서 실행되므로 WebGL과 WASM에서 동작합니다.
- 05CancellationToken, 시간 제한 헬퍼, 누수를 디버깅하는 TaskTracker 에디터 창을 제공합니다.
- 06비동기 스트림을 위한 비동기 LINQ, Channel, AsyncReactiveProperty를 제공합니다.
활용 사례
- Unity 게임에서 코루틴을 async/await 코드로 대체하기.
- Unity에서 에셋이나 씬을 로드하고 웹 요청을 순차적 또는 병렬로 처리하기.
- 스레드를 사용할 수 없는 WebGL을 대상으로 Unity 프로젝트 빌드하기.
- uGUI 버튼 클릭이나 MonoBehaviour 이벤트를 await 가능한 비동기 스트림으로 변환하기.
빠른 시작
- 1
git 참조를 사용해 UPM 패키지를 설치합니다
- 2
또는 릴리스 페이지에서 에셋 패키지를 가져옵니다
- 3
namespace를 추가하고 Unity 작업을 await하기 시작합니다
using Cysharp.Threading.Tasks;
사용 전 알아둘 점
- Unity 2018.3 이상이 필요합니다(공식적으로 지원되는 최소 버전은 2018.4.13f1입니다).
- 설치 방법으로 문서화된 것은 첫 번째 단계뿐입니다. 설치에는 독립 실행형 명령이 아니라 Unity가 필요합니다.
토픽
자주 묻는 질문
- UniTask은(는) 무엇인가요?
- Unity 비동기 작업, 코루틴, PlayerLoop 타이밍을 await할 수 있는 무할당 async/await 통합 UniTask는 Unity 전용 태스크 타입이자 async/await 통합 라이브러리입니다. 표준 Task의 대안으로, 할당을 없애는 것을 목표로 하는 사용자 지정 async 메서드 빌더와 struct 기반 UniTask<T>를 제공합니다. Unity의 AsyncOperations, 코루틴, UnityWebRequest 요청을 직접 await할 수 있으며, Yield, Delay, DelayFrame 같은 프레임 기반 대기로 일반적인 코루틴 패턴을 대체할 수 있습니다.
- UniTask은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- UniTask은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- UniTask은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. UniTask의 마지막 커밋은 2026년 10월 6일입니다.
- UniTask은(는) 어디에 사용할 수 있나요?
- Unity 게임에서 코루틴을 async/await 코드로 대체하기. Unity에서 에셋이나 씬을 로드하고 웹 요청을 순차적 또는 병렬로 처리하기. 스레드를 사용할 수 없는 WebGL을 대상으로 Unity 프로젝트 빌드하기. uGUI 버튼 클릭이나 MonoBehaviour 이벤트를 await 가능한 비동기 스트림으로 변환하기.
- UniTask는 어떻게 설치하나요?
- git 참조를 사용해 UPM 패키지를 설치합니다 또는 릴리스 페이지에서 에셋 패키지를 가져옵니다 namespace를 추가하고 Unity 작업을 await하기 시작합니다: using Cysharp.Threading.Tasks;
- UniTask은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Cysharp/UniTask
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
게임 대화 실행을 위한 시나리오 형식 대화 시스템 Yarn Spinner의 공식 Unity 통합 패키지입니다.
AI 에이전트가 MCP 도구와 생성된 스킬을 통해 Unity를 제어하도록 지원하는 플러그인
빌드에서 런타임 로그를 표시하고 등록된 디버그 명령을 실행하는 Unity용 uGUI 인게임 콘솔입니다.
게임 프로젝트를 스튜디오처럼 운영할 수 있도록 AI 에이전트 49개와 슬래시 명령 스킬 74개, 조정용 훅을 구성하는 Claude Code 템플릿입니다.
탑다운 게임의 경로 탐색을 위해 타일맵, 스프라이트, Collider2D 셰이프에서 2D 내비게이션 메시를 생성하는 Unity 확장 기능입니다.