오늘은 Coroutine에 대해 정리하고자 합니다.
최근에 테스트를 봤었는데
Coroutine에 관한 질문에 정확하게 대답을 못 한 거 같아
다시 한번 정리를 해보고자 작성했습니다.
Coroutine
작업을 다수의 프레임에 분산하는 메서드.
실행을 일시 정지하고 제어를 Unity에 반환하지만,
중단한 부분에서 다음 프레임을 계속할 수 있는 메서드.
객체를 생성할 때 힙 메모리에 할당한다.
중요한 건
※ 비동기식으로 처리하는 것처럼 보이나 그 근본은 동기식이다.
동기식 ? 비동기식?
동기식
= 작업이 순차적으로 실행되는 것
비동기식
= 작업이 병렬적으로 실행 가능(동시에 실행 가능)
이름도 들어보도 사용해 봐서 어렴풋이는 기억하고 있었었는데,
비동기식이라는 게 당시 안 떠올라서 이상하게 썼던 거 같네요;;
정리하면서 보니 그림도 제대로 떠올었는데 ;;
마무리
오늘은 일단 간단하게 Coroutine에 대해서 정리해 봤습니다.
추가로 UGS 내용을 학습하면서 Await와 async가 사용되는 걸 보았고,
이 녀석들 또한 비동기라는 것을 알게 되어
비동기 프로그래밍으로 파트를 나눠봤습니다.
다음시간에는 async, await에 대해 정리해 보도록 하겠습니다.
참고한 자료
https://youtu.be/rEfeMWLgI_Y?si=Esg4D5MEC39NJmK-
Unity: 비동기와 코루틴을 혼동하지 않기
본론에 앞서 유니티에서의 대부분 로직은 동기 방식으로 작성되며, 흐름(Flow, Stream)을 관리하거나 시간을 조절해 시행해야하는 작업은 코루틴(Coroutine)이라는 기능을 활용하여 구현됩니다. 특히
tistory.jeon.sh
https://docs.unity3d.com/kr/2022.3/Manual/Coroutines.html
코루틴 - Unity 매뉴얼
코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있습니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니
docs.unity3d.com