Unity라이프사이클과 타이밍

코루틴 기본

시간차가 있는 게임 로직을 여러 프레임에 나눠 처리할 때 자주 쓰는 Unity 코루틴 기본 패턴입니다.

마지막 수정 2026년 3월 15일

언제 쓰면 좋은가

  • 단계 사이에 잠깐씩 기다림이 필요한 짧은 게임 시퀀스
  • UI 페이드, 쿨다운, 튜토리얼 단계, 시간차 소환
  • 상태 변수를 많이 만들지 않고 읽기 쉬운 시간 기반 로직을 작성하고 싶을 때

기본 코루틴

csharp
private IEnumerator FlashDamage()
{
    indicator.SetActive(true);
    yield return new WaitForSeconds(0.15f);
    indicator.SetActive(false);
}

private void OnHit()
{
    StartCoroutine(FlashDamage());
}

자주 쓰는 yield

yield 구문동작
yield return null다음 프레임에 다시 이어집니다.
WaitForSeconds지정한 시간 뒤 다시 이어집니다.
WaitUntil조건이 참이 될 때까지 기다립니다.
WaitForEndOfFrame프레임 렌더링이 끝난 뒤 다시 이어집니다.

흐름 이미지

코루틴은 스스로 잠시 멈췄다가 나중에 이어서 실행하는 메서드라고 생각하면 이해가 쉽습니다.

주의할 점

코루틴은 스레드가 아닙니다. 여전히 메인 스레드에서 돌기 때문에, 내부에 무거운 연산이 있으면 프레임 드랍이 생길 수 있습니다.

참고 링크

2 sources