Unity Editor Coroutine

2019. 3. 3. 17:05Unity Engine/Info

에디터 코루틴


유니티는 기본적으로 싱글 쓰레드를 기반으로 하지만, 분할 작업은 필요하다. (메인쓰레드에서 하나의 작업을 길게 잡고 있는 것은 곤란하니...)

이를 위해 메인쓰레드를 분할하여 작업을 할당하는 코루틴이라는 녀석을 제공한다.


문제는 이 코루틴이 에디터에서는 의도한 것 처럼 동작하지 않는다는 점이다.

아무래도 유니티가 에디터 상태에서 하는일이 많아서(렌더라던가, 인풋 이라던가 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 버전에서는 신경쓰지 않아도 되는가 보다.

애초에 에디터 모드에서 실행되는 코루틴이라 상관없을 것 같지만 나중에 필요해지면 테스트 해보자...

'Unity Engine > Info' 카테고리의 다른 글

SRP Batcher  (0) 2019.05.27
Unity Adaptive Performance  (0) 2019.04.26
유니티 2019.1 Release  (0) 2019.04.18
Unity FBX Exporter  (0) 2019.03.04
Unity Package Manager  (0) 2019.03.03