코루틴 기능에 대해 알아보고 활용해보고
디자인패턴 중 하나인 어댑터패턴을 알아보겠다.
유니티에서 함수의 실행을 일시중지하고, 원할 때 다시 실행할 수 있는 기능.
범용적으로 쓸 수 있는 개념이라 여러 코드에서 볼 수 있을 듯 하다.
반복 가능 객체를 순회할 수 있는 기능 제공
foreach 루프나 코루틴에서 자주 사용됨.
IEnumerator numbers = new int[] (1, 2, 3).GetEnumerator()
GetEnumerator 가 IEnumerator 객체를 반환함.

void Start()
{
StartCoruntine(PrintNumbers());
}
IEnumerator PrintNumbers());
{
for (int i = 1; i < 5; i++
{
Debug.Log(i);
yield return new WaitForSeconds(1f);
}
}
유니티에서 제공하는 시간 지연 실행 함수
특정 메서드를 일정 시간이 지난 뒤에 자동으로 호출하도록 예약하는 기능
장점
단점
| 구분 | 코루틴 (Coroutine) | 인보크 (Invoke) |
|---|---|---|
| 동작 방식 | 함수 실행을 중간에 멈췄다가(yield) 다시 이어서 실행 | 일정 시간이 지난 뒤 지정된 메서드를 호출 |
| 복잡도 | 다양한 흐름 제어 가능 (반복, 조건, 여러 단계 지연 등) | 단순히 딜레이 후 메서드 실행 |
| 취소 방법 | StopCoroutine() 필요 | CancelInvoke() 필요 |
| 가독성 | yield로 여러 단계 동작을 직관적으로 표현 가능 | 단발성 실행에는 간단 |
서로 다른 인터페이스를 가진 클래스들을 함께 작동하게 하고 싶을 때 사용
기존 코드를 수정하지 않고 새 클래스나 라이브러리를 기존 시스템에 맞춰 연결할 때 유용.
Target, Adaptee, Adapter 세가지 구성요소를 가진다.

코루틴 기능을 알아보고 Mobspawner 기능을 추가해보았다.