2015. 6. 16. 21:04ㆍ프로그래밍/Coroutine
코루틴을 멈추는 데에는 몇가지 방법이 있다.
AllStopCoroutine();
을 이용하여 전체 코루틴을 종료하는 것이 한가지 방법인데,
이때에는 해당 스크립트가 붙어있는 게임 오브젝트에 달려있는 모든 코루틴을 종료하는 것이므로 주의해야한다.
게임오브젝트를 비활성화 하는 것도 AllStopCoroutine을 호출하는 것과 같은 효과를 낸다.
전체를 끄거나 오브젝트에 코루틴이 하나만 달려있거나, 오브젝트별 코루틴을 잘 관리하고 있다면 위와 같은 방법이 효과적이지만
정확히 어떤 코루틴을 집어서 종료하고 싶을때에는 주로
StopCoroutine("코루틴 이름");
을 이용했다.
해당 스크립트의 해당이름 코루틴을 찾아 종료시키는 것이다.
하지만 이것을 이용하여 코루틴을 멈출때도 제약이 꽤 있다.
같은 이름의 코루틴이나, 찾기 애매한 코루틴의 경우
다음과 같은 방법을 사용해보자.
Coroutine c = null; 로 임시 코루틴을 만들어둔다.
void method()
{
c = StartCoroutine("코루틴 함수명"); //여기서 코루틴을 실행시킴과 동시에 해당 코루틴을 변수로 들고 있는다.
} 그리고 if(c != null) StopCoroutine(c); 의 방식으로 정확히 아까 실행시킨 코루틴을 중지시킨다.
무한으로 돌아가는 코루틴같은 경우는 꼭 필요해서 계속 사용하지 않는 경우, 성능을 저하시키는 요인이 된다.
편리하지만 독이 될수도...
이제 코루틴
잘 활용하고, 잘 정리하자~~~
'프로그래밍 > Coroutine' 카테고리의 다른 글
StopCoroutine() 의 활용 2 - Coroutine continue failure (3) | 2015.10.14 |
---|---|
KhjCoroutines - AniSprite (0) | 2014.08.25 |
KhjCoroutines - DownMove (0) | 2014.07.31 |
KhjCoroutines - AlphaOnOffLoop (0) | 2014.07.31 |
KhjCoroutines - ScaleChange (0) | 2014.07.30 |