noname02

Coroutine(코루틴) 실용적인 정리. 본문

Study/UNITY

Coroutine(코루틴) 실용적인 정리.

kimtaku 2015. 5. 7. 22:50

Coroutine은 결국 메서드의 실행순서를 지연시킬 수 있다는 점에서 사용된다.

원래 메서드는 한번 읽히면 해당 메서드가 종료될 때까지 쭈-욱 읽힌다.

그런데 Coroutine을 사용하게 되면, 해당 메서드가 진행되다가 잠깐 Stop된다. 그리고 resume 조건에 따라 다시 돌아와서 처음부터가 아닌 중간부터 수행된다.

이러한 Coroutine 메서드의 반환형은 무조건 IEnumerator 로 설정해야 한다.

나도 정확히는 모른다. 어렴풋이 개념적으로만 이해하고 있어서 설명은 못하고, 해당 설명은 다른 글을 참고하면 될 것이다.

여튼 그래서 Coroutine 메서드는


IEnumerator Method() { ... }

의 형태로 정의한다.


메서드의 몸체에는 무조건 yield return 문이 와야 하는데, 이 yield return 문이 바로 잠깐 Stop시킴과 동시에 Resume을 시키는 조건이 된다. 그러니까 결국 이런셈이다.

보통의 메서드A가 실행되는 것은

{

1;

2;

3;

4;

return;

}

이런 형태이다.

그냥 1,2,3,4 모두 실행하고 메서드가 끝이 난다.


하지만 Coroutine은

{

1;

2;

3;

4;

yield return ..

5;

6;

7;

}


이런게 가능한 것이다.

yield return문을 통해 잠깐 정지된다. 그리고 이 yield return문의 조건에 따라 다시 돌아와서 5,6,7을 수행하고 메서드가 종료되는 것이다.

해당 조건은 위에서 말했듯 다른 글에 있으니 참고하면 된다.


이것이 바로 Coroutine을 사용하는 이유다.

그리고 이러한 Coroutine 메서드는 StartCoroutine("메서드 이름"); 의 형태로 호출한다.

그냥 메서드를 호출하면 Coroutine이 적용되지 않는다. 꼭 StartCoroutine로 호출해야한다.


'Study > UNITY' 카테고리의 다른 글

모바일 화면 터치 구현하기.  (0) 2015.05.15
Rigidbody2D 옵션  (0) 2015.05.15
플랫폼에 따른 전처리 지시자  (0) 2015.05.15
Singleton(싱글톤) 객체 만들기  (0) 2015.05.14
Coroutine  (0) 2015.05.04
Comments