[Unity] 35. 코루틴(Coroutine)

Connected Brain·2025년 4월 29일

면접 질문 대비

목록 보기
35/60

코루틴의 동작원리와 사용해본 예시를 함께 설명해주세요.

한 줄 요약

코루틴 : 함수 실행 중에 특정 시점에 일시 중지 후 제어권을 반환했다가, 조건이 충족되면 제어권을 돌려받아 다시 실행 중단 시점에서 원래 함수를 실행을 이어서 할 수 있도록 함
(특정 시간 조건에 따르는 비동기 작업을 동기 코드처럼 순차적으로 진행)

코루틴(Coroutine)

  • 일반적인 함수는 매개변수를 입력받고, 실행 후 반환값을 반환하는 과정을 거침
    (모든 과정은 단일 프레임 내에서 이루어짐)
  • 특정 함수를 실행하는 중간에 다른 함수를 실행하도록 하기 위해서는 코루틴을 사용해야함

    코루틴을 사용하는 이유

    • Update문을 사용하지 않으면서 특정 조건에서 반복적으로 실행되야하는 기능
    • 일정 시간 이후에 실행되야하는 기능을 예약

기본 구조

void OnEnable() => StartCoroutine(DespawnAfterDelay());
IEnumerator DespawnAfterDelay()
        {
            yield return new WaitForSeconds(despawnDelay);
            PoolManager.ReturnToPool(this);
        }
  • 오브젝트 풀에서 오브젝트 풀에 들어가야하는 오브젝트가 활성화시 코루틴을 시작
  • despawnDelay 시간 이후에 오브젝트 풀에 다시 오브젝트로 돌려놓는 코루틴을 실행
  • 모든 코루틴은 IEnumerator를 형식을 반환하는 구조이며, yield return을 반드시 포함
  • yield return 이후에 실행할 기능을 정의

0개의 댓글