언제 쓰면 좋은가
- 단계 사이에 잠깐씩 기다림이 필요한 짧은 게임 시퀀스
- 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