728x90
반응형
코루틴(Coroutine)
- 반환형은 IEnumerator (코루틴 함수는 반환형을 IEnumerator로 만든다 -라고 생각하자.)
- 코루틴 함수 내부에는 yield return을 꼭 적어줘야 한다.
- yield return : 코루틴에서 동작하는 제어권을 유니티에 다시 돌려준다.
- yield return에 도착하게 되면 yield return 뒤에 명시된 순간만큼 코드 동작을 중지하고, 제어권을 유니티에 돌려준다.
- 명시된 순간이 끝나면 다음 줄부터 다시 코루틴이 시작
- 코루틴을 호출하기 위해서는 StartCoroutine으로 호출해야한다. ex) StartCoroutine(함수명());
- 코루틴은 Start()함수가 호출된 이후에, gameObject가 활성화된 상태에서 호출해야한다.
- 코루틴 내부에서 무한루프를 만들면 안된다.
코루틴 중단
- StopCoroutine()으로 중지 할 수 있다.
- "함수명"으로 지정을 하거나, IEnumerator 변수를 만들어 코루틴 함수를 변수화 해준 후, StopCoroutine()을 해준다.
- "함수명"으로 StopCoroutine()을 사용하면 같은 이름의 여러개 코루틴이 한번에 중지하게 된다.
- StopAllCoroutines() - 컴포넌트가 실행하고 있는 모든 코루틴을 중단시킨다.
- 코루틴에도 매개변수를 사용할 수 있다.
yield return
- yield return : 코드의 제어권을 유니티 엔진에 잠시 넘겼다가 특정 시점이 되면 다시 받아서 코드를 진행
- null : 1 프레임 동안 기다린다.
- WaitForSeconds : 생성자의 매개변수로 넣어준 시간만큼 기다린다.
- WaitForFixedUpdate : FixedUpdate 과정이 끝난 후에 제어권을 돌려받는다.
- WaitForEndOfFrame은 Update는 물론 화면을 렌더링 하는 과정 등, 한 프레임이 지나가는 과정 전체가 끝난 뒤, 가장 마지막에 제어권을 돌려받는다.
yield break
- yield break : 그 시점에 코루틴을 완전히 멈춰버린다.
유니티 - 매뉴얼: 코루틴(Coroutine)
게임 오브젝트 생성 및 삭제 특수 폴더와 스크립트 컴파일 순서 코루틴(Coroutine) 함수를 호출하면 반환값을 반환하기 전에 실행 완료됩니다. 즉, 함수에서 수행되는 작업은 하나의 프레임에서 수
docs.unity3d.com
728x90
'Unity > Tips' 카테고리의 다른 글
[Unity] 내부 저장소를 통해 Package Manager 활용하기 (Verdaccio 설치 및 실행) (0) | 2022.03.12 |
---|---|
[Unity] HDRP - Light Explorer, Light Layers, Post-processing (5/5) (0) | 2022.02.21 |
[Unity] HDRP - Fog & Volumetrics, Ambient Occlusion (4/5) (0) | 2022.02.20 |
[Unity] HDRP - Shadows, Reflections (3/5) (0) | 2022.02.19 |
[Unity] HDRP - Exposure, Lighting, Light Intensities (2/5) (0) | 2022.02.19 |