공통점
- 둘 다 시간 지연 이후 동작 실행을 위해 사용된다.
Invoke
Invoke("MethodName", 2f); // 2초 후 MethodName 실행
- 매우 간단하고 직관적.
- 한 번만 실행되는 지연 호출에 적합.
- 문자열 기반 호출 → 오타 발생 시 런타임 오류 가능성 있음.
- 매개변수 전달 불가, 조건 제어 어려움.
- 오브젝트가 비활성화 되어도 실행됌
- InvokeRepeating을 통해 반복 가능
장점: 코드가 짧고 간편함.
단점: 유연성이 떨어짐 (취소, 반복, 조건 처리 어려움).
Coroutine
StartCoroutine(MyCoroutine());
IEnumerator MyCoroutine()
{
yield return new WaitForSeconds(2f);
Method();
}
- 지연뿐 아니라 반복, 조건 제어, 단계별 흐름 제어에 유리.
- 매개변수 전달 가능.
- yield로 프레임 단위 제어, WaitUntil, WaitForEndOfFrame 등 다양한 제어 가능.
- 오브젝트 비활성화시 실행 안됨
🔹 장점: 복잡한 흐름 제어에 적합, 확장성 높음.
🔹 단점: 코드가 길어질 수 있음.
요약 비교
| 지연 실행 | 가능 (Invoke) | 가능 (yield return) |
| 반복 실행 | 제한적 (InvokeRepeating) | 자유로움 (while, for 가능) |
| 취소 | CancelInvoke() | StopCoroutine() |
| 매개변수 | 불가능 | 가능 |
| 흐름 제어 | 불가 | 조건문, 반복문 등 자유롭게 가능 |
'Unity > 개념' 카테고리의 다른 글
| [Unity] 유니티 생명 주기 (0) | 2025.08.02 |
|---|---|
| [Unity] 제네릭에 대하여 (2) | 2025.08.01 |
| [Unity] Override와 Overloading (2) | 2025.07.30 |
| [Unity] A* 알고리즘 개념 정리 (2) | 2025.07.29 |
| [Unity] 백터의 외적과 내적 (feat : 게임 개발) (2) | 2025.07.28 |