Unity Editor Coroutine
에디터 코루틴
유니티는 기본적으로 싱글 쓰레드를 기반으로 하지만, 분할 작업은 필요하다. (메인쓰레드에서 하나의 작업을 길게 잡고 있는 것은 곤란하니...)
이를 위해 메인쓰레드를 분할하여 작업을 할당하는 코루틴이라는 녀석을 제공한다.
문제는 이 코루틴이 에디터에서는 의도한 것 처럼 동작하지 않는다는 점이다.
아무래도 유니티가 에디터 상태에서 하는일이 많아서(렌더라던가, 인풋 이라던가 GUI 업데이트 라던가...)
스크립트의 코루틴 작업이 후 순위로 밀려 버리기 때문이 아닌가 생각된다..
이 때문에 에디터에서 코루틴을 사용 할때는 에디터 형태의 코루틴을 스크립트로 만들어 사용하였는데
패키지 매니저가 추가되면서 제공되는 기능들 중에 에디터 코루틴도 추가되어 있다. (이제 만들어 쓸 필요 없다는 소리...)
참고
- 패키지 매니저 : 2019/03/03 - [Unity Engine/Info] - Unity Package Manager
일단 패키지 매니저를 통해 에디터 코루틴을 프로젝트에 추가하자.
그리고 연결된 문서를 읽어보면 사용 환경에 대해서 설명하고 있다.
문서 : https://docs.unity3d.com/Packages/com.unity.editorcoroutines@0.0/manual/index.html
문서를 읽어보면 친절하게도 사용법에 대한 매뉴얼을 링크로 제공하지만 링크만 있고 매뉴얼에 내용이 없다???
아무리 사용법이 심플해도 사용법이나 샘플 씬 하나 정도는 넣어두지...
코드를 살펴보면 에디터코루틴 유틸리티에 접근하여 함수를 호출하는 형태이다.
에디터 코루틴 시작 : Unity.EditorCoroutines.Editor.EditorCoroutineUtility.StartCoroutine();
에디터 코루틴 종료 : Unity.EditorCoroutines.Editor.EditorCoroutineUtility.StopCoroutine();
[간단하게 작성한 샘플 코드]
문서에는 알아두어야할 주의점도 적혀있는데
굳이 0.0.1-preview.2 버전임을 명시해둔걸로 보아 최신버전인 0.0.2 버전에서는 신경쓰지 않아도 되는가 보다.
애초에 에디터 모드에서 실행되는 코루틴이라 상관없을 것 같지만 나중에 필요해지면 테스트 해보자...