Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

게임 프로그래밍

코루틴 멈추기 본문

프로그래밍/유니티

코루틴 멈추기

Junwe 2016. 4. 21. 00:54

1. StopAllCoroutines

 

 StopAllCoroutines는 해당 스크립트가 가지고 있는 모든 코루틴을 정지 시킨다.

코루틴은 startcoroutine을 실행시켰던 스크립트가 가지고(?) 있다고 보면 된다.(이 부분은 더 찾아 봐야됨 현재는 이렇게 이해중)

그래서 만약 Player.instance.StartCoroutine("Test") 를 GameMgr 스크립트에서 실행시키고 GameMgr스크립트 안에서 StopAllCoroutines를 실행시킨다고 가정한다고 하면

이럴 경우에는 Test 코루틴은 Player 스크립트에서 가지고 있기 때문에 코루틴이 멈추지 않는다.

 

2-1. StopCoroutine("코루틴 메서드 이름")

코루틴 이름에 해당하는 코루틴만 멈추게 할 수있는 방법이다. 하지만 해당 메서드 코루틴은 모두 멈추게 된다.

 

 

2-1. StopCoroutine(Coroutine)

해당 코루틴만 찾아서 정확히 그 코루틴만 멈추게 할 수 있다.

예로

Coroutine cor = null; // 코루틴 변수 선언

cor = StartCoroutine("Test");

 

StopCoroutine(cor); // 위에 선언했던 Test만 멈추게 만든다. 모든 Test 를 멈추게 하는 일이 발생하지 않음

 

주의) 위에 설명했던 대로 실행시킨 스크립트에서 해당 코루틴을 가지고 있게 되어 멈추는 경우에도 해당 스크립트로 멈춰야 한다. 무슨 소리이냐 하면

  만약 Player 스크립트에서 코루틴을 선언하고 GameMgr 에서 코루틴을 멈춘다면 Player.instance.StopCoroutine(cor)로 해야한다.

Comments