관리 메뉴

有希

Coroutine 본문

프로그래밍/UnityEngine기초

Coroutine

有希. 2021. 9. 4. 23:21

연산이 오래 엄청 걸리는 작업을 하나의 함수에서 다 하면 문제가 생길 수 있다. 어떤 함수를 일시정지 시켰다가 모든 값을 복원해서 다시 함수를 시작하는 것. C#에서는 지원하지만 C++에서는 지원하지 않음. :Ienumerable을 붙여줘서 GetEnumerator를 구현해주어야 한다. Return 시에는 yield return을 해줘야 한다. 이 때 int를 넣어서 반환해도 실제 반환은 박싱해서 Integer(object)로 반환한다. 그래서 반환값을 쓸 때에는 (T)로 원하는 타입으로 캐스팅 해줘야 한다.

Return을 여러 번 해서 값을 계속 뱉을 수 있다. Yield return null을 하면 일시정지이고(그럼 해당 루프를 빠져나와서 호출한 쪽으로 돌아간다. 그럼 이제 호출한 쪽에서 다시 실행할지 그대로 갈지 결정가능), yield break 하면 return null의 역할을 한다.

1.     함수의 상태를 저장/복원 가능!

->엄청 오래 걸리는 작업을 잠시 끊거나

->원하는 타이밍에 함수를 잠시 stop/복원하는 경우

2. return->우리가 원하는 타입으로 가능(class도 가능)

 

, 시간 관리하는 것은(4초 후 폭탄) 코루틴 사용이 매우 유리하다. startcoroutine으로 시간 지정 가능

'프로그래밍 > UnityEngine기초' 카테고리의 다른 글

게임 콘텐츠 전반  (0) 2021.09.05
Data Manager  (0) 2021.09.05
Object Pooling  (0) 2021.09.04
Sound Manager  (0) 2021.09.04
Scene Manager  (0) 2021.09.04