Record/TIL

[Unity] Coroutine VS Unitask

석영 2024. 7. 22. 21:52
반응형

< 정의 >

Coroutine이란?

유니티에서 사용되는 코루틴은 비동기 프로그래밍을 수행하기 위한 기능 중 하나이다.
코루틴은 일시 중지 할 수 있는 함수의 실행을 가능하게 하며,
특정 조건이 충족될 때까지 기다린 후에 실행을 계속할 수 있도록 한다.
코루틴의 기본적인 원칙은 ‘IEnumerrator’ 인터페이스를 반환하는 함수를 통해 작성된다.
⇒ 비동기 처리를 해주는 특수한 메서드. 함수 실행을 일시중지 시킬 수 있다.

 

UniTask란?

유니티에서 UniTask는 비동기 작업을 처리하기 위한 도구로, 유니티에서 내장되어 있는 코루틴 기능을 대체하며 async/await 패턴을 지원한다.
일반적인 C#의 Task와 비교하여, UniTask는 유니티에서 더 효율적으로 동작하도록 설계되었다.
주로 WebGL 빌드와 같은 플랫폼에서 기본 Task의 제한을 극복하기 위해 사용되었다.

 


< 장단점 >

코루틴

장점

  • 추가 라이브러리 불필요
  • 시간 제어 가능 (yield return 사용)

단점

  • IEnumerator 반환 함수에 제한
  • 복잡한 비동기 작업 처리 어려움 (ex. When All)

 

UniTask

장점

  • async / await 구문을 활용한 비동기 프로그래밍
  • WhenAll, WhenAny 등의 내장 메서드 제공
  • Zero Allocation 기능으로 성능 향상

단점

  • 추가 라이브러리 필요

 


 

< 한줄요약 >

코루틴 가비지 남음
UniTask 가비지 안남음

 

 

 


 

오늘의 회고

튜터님께 멋쟁이 스킬을 알려달라고 했더니 UniTask에 대해서 알려주셨다. 한번 써보는 것도 좋을 것 같다. ㅎㅎ 

 

 


 

>> 참고블로그

[ 유니티 코루틴 대신 unitask ]

 

유니티 코루틴 대신 unitask

유니티에서 unitask를 사용하기 앞서, 유니티에서 사용하는 코루틴이 무엇인지 알아야 진정한 unitask의 장점을 알 수 있습니다. 지피지기 백전불태 그렇기에 유니티에 기본적으로 내장되어 있는

wlsdn629.tistory.com

 

 

 

 

 

반응형