728x90
반응형

📕오늘의 공부 주제



Invoke와 코루틴의 차이점 이해하기

🤔Why?



딜레이 처리나 시간 기반 로직을 구현할 때 `Invoke()`와 `Coroutine` 중 어떤 것을 선택할지 판단 기준이 필요하다. 각각의 장단점을 파악하면 상황에 맞는 선택이 가능해진다.

📖오늘의 공부 내용



✅ Invoke

  • 특정 함수를 일정 시간 후 단 한 번 실행
  • 또는 InvokeRepeating()을 사용해 주기적으로 반복 실행 가능
  • 간단한 딜레이 호출에 적합

예시

Invoke("Explode", 2f); // 2초 후에 Explode() 실행
InvokeRepeating("Shoot", 1f, 0.5f); // 1초 후부터 0.5초 간격으로 반복

단점

  • 실행 취소는 CancelInvoke()로만 가능
  • 실행 중 조건 제어나 흐름 제어 불가능

✅ Coroutine

  • IEnumerator를 이용해 시간 단위 흐름 제어 가능
  • 단계적 처리, 조건에 따른 중단/재개, 복잡한 시퀀스 연출에 유리

예시

IEnumerator FadeOut() {
    while (alpha > 0) {
        alpha -= Time.deltaTime;
        yield return null;
    }
}
StartCoroutine(FadeOut());

장점

  • 유연한 흐름 제어 (yield return)
  • 실행 중 StopCoroutine()으로 중지 가능
  • 루프, 조건문, 중첩 실행 등 다양한 제어 구조 활용 가능

✅ 요약 비교

항목 Invoke Coroutine
호출 방식 메서드명 문자열로 호출 IEnumerator 함수로 실행
반복 실행 InvokeRepeating() 가능 루프나 WaitForSeconds로 구현 가능
흐름 제어 불가능 조건/시간 기반 흐름 제어 가능
중단 여부 CancelInvoke() StopCoroutine()
활용 상황 단순 딜레이 함수 실행 순차 처리, 상태 기반 연출, 타이머 등

💡 결론:

  • 단순한 1회성 지연: Invoke()
  • 복잡한 상태 흐름이나 애니메이션: Coroutine
728x90
반응형

'프로그래밍 공부 > TIL' 카테고리의 다른 글

2025-07-28 TIL  (0) 2025.07.28
2025-07-25 TIL  (3) 2025.07.25
2025-07-23 TIL  (0) 2025.07.23
2025-07-21 TIL  (0) 2025.07.21
2025-07-18 TIL  (0) 2025.07.18