카테고리 없음

유니티 - Coroutine에 대해 알아보자

근본넘치는개발자 2024. 11. 10. 00:00

 

오늘은 Coroutine에 대해 정리하고자 합니다.

 

최근에 테스트를 봤었는데

Coroutine에 관한 질문에 정확하게 대답을 못 한 거 같아

다시 한번 정리를 해보고자 작성했습니다.

 

Coroutine 

작업을 다수의 프레임에 분산하는 메서드.

 

실행을 일시 정지하고 제어를 Unity에 반환하지만,

중단한 부분에서 다음 프레임을 계속할 수 있는 메서드.

 

객체를 생성할 때 힙 메모리에 할당한다.

 

 

 

중요한 건 

※  비동기식으로 처리하는 것처럼 보이나 그 근본은 동기식이다.

 

동기식 ? 비동기식?

 

동기식 

= 작업이 순차적으로 실행되는 것

 

비동기식

= 작업이 병렬적으로 실행 가능(동시에 실행 가능)

 

 

이름도 들어보도 사용해 봐서 어렴풋이는 기억하고 있었었는데,

비동기식이라는 게 당시 안 떠올라서 이상하게 썼던 거 같네요;;

정리하면서 보니 그림도 제대로 떠올었는데 ;;

 

 

마무리 

오늘은 일단 간단하게 Coroutine에 대해서 정리해 봤습니다.

 

추가로 UGS 내용을 학습하면서 Await와 async가 사용되는 걸 보았고,  

이 녀석들 또한 비동기라는 것을 알게 되어 

비동기 프로그래밍으로 파트를 나눠봤습니다.

 

다음시간에는 async, await에 대해 정리해 보도록 하겠습니다.

 

 

참고한 자료

 

https://youtu.be/rEfeMWLgI_Y?si=Esg4D5MEC39NJmK-

 

https://tistory.jeon.sh/59

 

Unity: 비동기와 코루틴을 혼동하지 않기

본론에 앞서 유니티에서의 대부분 로직은 동기 방식으로 작성되며, 흐름(Flow, Stream)을 관리하거나 시간을 조절해 시행해야하는 작업은 코루틴(Coroutine)이라는 기능을 활용하여 구현됩니다. 특히

tistory.jeon.sh

 

https://docs.unity3d.com/kr/2022.3/Manual/Coroutines.html

 

코루틴 - Unity 매뉴얼

코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있습니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니

docs.unity3d.com