[스토리]

다른 프로그램도 마찬가지겠지만, Function의 호출, 흐름은 멈출 수 없다. 이게 무슨말인가 하면,

 

function1();

function2();

----1시간만 기다려!----

function3();

 

기다리는 부분에 특수한 장치 혹은 함수를 활용하지 않는 이상, 만약  무한루프를 활용하여 대기를 한다면

당신의 PC는 이상은 감지하고 프로그램을 죽은것으로 판단할 것이다. (흔하게 보는 응답없음)

 

C#에는 Thread.Sleep();이라는 좋은 함수를 활용하여 멈출 수 있지만, 아쉽게도 Unity에서는 제공되지 않는다.

하지만 언제나 Wait-Function이 필요할 수 있기 때문에 이번 리서치를 기회삼아 Coroutine을 활용한 방식을 포스팅한다.

 

1. 설계

Unity에서는 yield return 에서 제공하는 여러가지 유용한 기능들이 있다. 

하지만 이 기능은 Coroutine에서만 사용할 수 있기 때문에, 우리는 Coroutine을 사용해본다.

 

* 코루틴에 대해서 자세히 들여다 보고 싶다면 아래 블로그의 포스팅을 참고하자

http://theeye.pe.kr/archives/tag/waitforendofframe

 

1) for(int index = 0; index < 10; index++) 를 통해서 같은 함수를 10번 호출시킨다.
(앞 함수가 진행되고 있더라도 호출)

2) 하지만 사용자의 의도는 한 함수가 끝나면 그 다음 함수를 '순차적'으로 호출하는 것이다.

3) 그러기 위해선 for문 안에 들어갈 것은 function이 아닌 Coroutine을 활용한다.

 

2. 소스코드

 

+ Recent posts