코루틴을 사용하면 이전에 함수에서 진행 중이던 상황을 저장했다가 복원하여 그대로 이어서 수행하게 할 수 있다
* yield break; 를 하게 되면 함수를 완전히 빠져나오게 된다
// 코루틴 사용 예
StartCoroutine("CoExplodeAfterSeconds", 4.0f);
IEnumerator CoExplodeAfterSeconds(float seconds)
{
Debug.Log("Explode Enter");
yield return new WaitForSeconds(seconds);
Debug.Log("Explode Execute!");
}
// 코루틴 사용 및 삭제
Coroutine co = StartCoroutine("CoExplodeAfterSeconds", 4.0f);
StartCoroutine("CoStopExplode", 2.0f);
IEnumerator CoStopExplode(float seconds)
{
Debug.Log("Stop Enter");
yield return new WaitForSeconds(seconds);
Debug.Log("Stop Execute!");
if (co != null)
{
StopCoroutine(co);
co = null;
}
}
IEnumerator CoExplodeAfterSeconds(float seconds)
{
Debug.Log("Explode Enter");
yield return new WaitForSeconds(seconds);
Debug.Log("Explode Execute!");
co = null;
}
* 코루틴 계열의 함수는 함수명에 Co를 붙여주면 구별이 용이
'강의, 책 > [Unity] C#과 유니티로 만드는 MMORPG 게임 개발 시리즈' 카테고리의 다른 글
Section 12. Data - Data Manager (0) | 2024.02.04 |
---|---|
Section 10. Object Pooling - Pool Manager (0) | 2024.02.03 |
Section 9. Sound - Sound Manager(2) (0) | 2024.02.03 |
Section 9. Sound - Sound Manager(1) (0) | 2024.02.02 |
Section 8. Scene - Scene Manager (0) | 2024.01.31 |