728x90
코루틴을 공부하면서 얻은것
코루틴은 게임 실행 중 제어권을 넘겨받아서 처리하는 기법? 이라고 이해는 했다.
그래서 코루틴이 뭐냐
IEnumerator FadeOut()
{
Color fade = fadeImg.color;
for (float ff = 0f; ff < 1f;)
{
ff += 0.01f;
fade.a = ff;
fadeImg.color = fade;
yield return new WaitForSeconds(0.01f);
}
SceneManager.LoadScene("GameScene");
}
StartCoroutine(FadeOut());
IEnumerator 라는 반환값을 적어주면 자동으로 코루틴 함수가 생성된다.
항상 코루틴의 반환값은 yield return 으로 리턴하고 null값 혹은 위의 코드처럼 new WaitForSeconds(0.01f); 처럼 대기 시간을 리턴 할 수 있다. 위의 코드는 유니티에서 구현한 FadeIn 함수이다.
보통 코루틴을 사용하는 조건은 깜빡거림이나 페이드아웃, 페이드인 같은 기법에 주로 사용하는듯하다.
코루틴을 실행시킬땐 StartCoroutine함수를 사용하여 호출한다.
결국 내가 구현한 함수는 리턴값으로 대기시간을 리턴하니 0.01f만큼 대기 한 후 다음 프레임을 실행하라는 의미인듯 하다.
-코루틴 : 제어권을 넘겨받아 독립적으로 실행하는 함수?
조금 더 설명을 위해 링크를 남긴다.
https://docs.unity3d.com/kr/2019.4/Manual/Coroutines.html
코루틴 - Unity 매뉴얼
함수를 호출하면 값을 반환하기 전에 실행 완료됩니다. 이는 함수에서 수행되는 모든 액션이 하나의 프레임 업데이트 내에서 발생해야 한다는 것을 의미합니다. 시간이 지남에 따라 절차식 애
docs.unity3d.com
또한 Fadein/ out은 어차피 코드만 반대로 하면 되니까 일부 코드만 첨부함.
728x90
'Develop > Unity' 카테고리의 다른 글
[Unity] 오브젝트 풀링 (0) | 2023.11.22 |
---|---|
[Unity] 유니티 멀티플레이를 위한 통신 구현 (Unity Mirror) (2) | 2023.11.21 |
[Unity] 씬 로딩 시 start함수의 동작 (0) | 2022.01.12 |
[Unity] 플레이어 카메라 안에 가두기 (WorldToViewportPoint, ViewportToWorldPoint) (0) | 2022.01.06 |
Prologue (0) | 2022.01.04 |