UniTask는 유니티에서 사용하기에 최적화된 비동기 라이브러리이다.

UniTask 설명 링크
https://velog.io/@jinuku/UniTask-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

 

UniTask 알아보기

Cysharp/UniTaskUniTask 는 유니티용 async-await 통합 패키지이다. CUniTask(사용자 지정 작업과 유사한 개체)가 필요한 이유는 무엇입니까? 작업이 너무 무거우므로 Unity 스레딩(단일 스레드)과 일치하지 않

velog.io


UniTask를 써야 하는 이유는 무엇일까?

기본 .Net의 Task와 비교하면 많은 차이점이 있다.

1.성능 최적화
UniTask는 유니티 메모리 및 성능 특성에 맞추어 최적화되어 있다. 일반적인 Task는 작업이 완료될 때마다,
가비지 콜렉터 오버헤드를 발생시킬 수 있으나, UniTask는 이러한 오버헤드를 크게 줄여준다.

2.Unity 기본 스레드 지원
UniTask는 Unity의 기본 스레드에서 실행되도록 설계되어 있어, Unity API를 호출하는 경우에도
스레드 안전성을 보장한다.
기본 Task에서는 작업이 메인 스레드 외부에서 실행되므로, Unity API를 호출하려면 추가적인 조취를 취해야 한다.

3.코루틴 대체

Unity에서 일반적으로 사용되는 코루틴을 UniTask로 대체할 수 있다. 코루틴은 많은 경우에 유용하지만, 성능 및 코드 가독성 측면에서 한계가 있다.
UniTask를 사용하면 코루틴의 단점을 보완하면서도 비슷한 기능을 구현할 수 있다.

4.동시성 제어
UniTask는 작업 간 동시성 제어를 보다 쉽게 처리할 수 있는 기능을 제공한다.
예를 들어, 여러 개의 비동기 작업을 순차적으로 실행하거나, 동시에 실행한 후 모든 작업이 완료될 때까지 기다리는 등의 작업을 손쉽게 처리할 수 있다.
기본 .NET Task에서도 비슷한 기능을 사용할 수 있지만, UniTask가 Unity 환경에서 더 효율적으로 동작한다.

종합하면, 기본 Task에 비해 성능, 구현단계에서의 가독성 등 많은 이점이 있으며, 특별한 이유가 없다면 사용하지 않을 이유가 없다.

유니티 패키지 매니저에서 간편하게 설치가 가능하니 꼭 사용해보자.

Windows => Package Manager => Add package from git Url =>
https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask

 

GitHub - Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity.

Provides an efficient allocation free async/await integration for Unity. - GitHub - Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity.

github.com

 

+ Recent posts