Deff_Dev

[Unity/C#] 생명주기와 yield return 호출 순서 본문

Unity(유니티)/유니티 공부

[Unity/C#] 생명주기와 yield return 호출 순서

Deff_a 2024. 2. 22. 17:18

Unity 생명 주기란 ?

  • 스크립트가 실행될 때 유니티의 이벤트 함수들이 실행되는 순서를 말합니다.

 

유니티 생명 주기 표

많이 사용 되는 이벤트 함수들의 순서를 적어보면

 

Awake → OnEnable → Start → FixedUpdate → Update → LateUpdate → OnDisable → OnDestroy 

 

이 순서로 이벤트 함수가 실행됩니다.

 

 

코루틴은 YieldInstructions에 따라 호출 순서가 달라집니다.

 

FixedUpdate 이후

 

yield return new WaitForFixedUpdate()

→ 모든 스크립트의 FixedUpdate 함수가 실행이 끝난 후에 yield return new WaitForFixedUpdate() 이후 내용을 실행합니다.

 

 

Update 이후

 

yield return null

→ 현재 프레임의 모든 Update 함수가 실행이 끝난 후에 yield return null 이후 내용을 실행합니다.

 

yield return new WaitForEndOfFrame()

   모든 Update 함수가 실행이 끝나고 화면 렌더링까지 끝났을 때 yield return new WaitForEndOfFrame() 이후 내용을 실행합니다.

 

 

조건이 만족하는 경우

 

yield return new WaitForSeconds(float)

yield return new WaitForSecondsRealtime(float)

   설정한 시간(초)가 지나고 이후 내용을 실행합니다. (Realtime은 Time.timeScale에 영향을 받지 않음.)

 

yield return new WaitUntil(조건)

   설정한 조건의 값이 true일때 yield return new WaitUntil(조건) 이후 내용을 실행합니다.

yield return new WaitWhile(조건)

   설정한 조건의 값이 false일때 yield return new WaitWhile(조건) 이후 내용을 실행합니다.

 

yield return startCoroutine(string)

→ 해당 코루틴이 끝난 후 yield return startCoroutine(string) 이후 내용을 실행합니다.

 

 

 

유니티 생명 주기표 출처

 

이벤트 함수의 실행 순서 - Unity 매뉴얼

Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.

docs.unity3d.com