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 |
