Unity에서 코루틴은 IEnumerator 객체를 통해 실행되며, Unity는 이 객체들을 내부적으로 리스트에 등록하여 매 프레임마다 검사하고 실행 조건이 충족되면 이어서 실행합니다.
yield break 란?
yield break는 코루틴 내부에서 즉시 실행을 종료하는 명령어입니다.
이것이 실행되면 Unity는 해당 코루틴을 더 이상 실행하지 않도록 처리하며, 코루틴 리스트에서 안전하게 제거합니다.
IEnumerator MyRoutine()
{
Debug.Log("Start");
if (SomethingWrong())
{
Debug.Log("문제 발생 → 코루틴 중단");
yield break;
}
yield return new WaitForSeconds(1f);
}
그럼 언제 코루틴에서 제거될까?
yield break가 호출되면 Unity는 그 순간 “이 코루틴은 끝났다”는 신호를 받게 됩니다.
코루틴 리스트에서 제거되는 정확한 시점은 해당 프레임의 마지막이 아니라 다음 프레임의 코루틴 실행 루틴이 시작되면서 진행 조건 검사를 할 때, 이 시점에 더 이상 실행할 수 없다고 판단되면 리스트에서 제거됩니다.
즉, 현재 프레임에서는 대기 상태로 남아있다가, 다음 프레임에서 완전히 제거됩니다.
코루틴의 실행도 제거도 모두 Update ~ LateUpdate 사이에서 이루어집니다.
정리
• 유니티는 IEnumerator 기반으로 코루틴을 리스트에 등록하여 관리합니다.
• yield break 는 코루틴을 즉시 종료하고, 다음 프레임에서 완전히 제거됩니다.
'Unity' 카테고리의 다른 글
오브젝트를 태그로 찾고자 할 때 : FindWithTag() (0) | 2025.07.02 |
---|---|
유니티에서 물체를 목적지까지 이동시키는 방법 (0) | 2025.07.01 |
유니티에서 카메라의 시야각을 나타내는 흰색 실선이 거슬릴 때 (0) | 2025.07.01 |
유니티에서 Visual Studio 가 열리지 않을 때 (0) | 2025.07.01 |
유니티 메뉴 폰트 크기 조정 (0) | 2025.07.01 |