상세 컨텐츠

본문 제목

[Unity] 이벤트 함수 실행순서 및 함수 설명

unity

by 뿡뿡이형 2020. 1. 9. 15:46

본문

첫 번째 씬 로드

Awake() : Start() 함수 이전의 프리팹의 인스턴스화 직후의 호출

OnEnable() : (오브젝트가 활성화 된 경우 호출) 오브젝트가 활성화 한 직후에 호출한다. 

OnLevelWasLoaded() : 새로운 씬이 로드되었을 경우 호출

첫 번째 프레임의 업데이트 전

Start() : 스크립트의 인스턴스가 활성화 되면 업데이트전에 호출

프레임 사이

OnApplicationPause() : 업데이트 중 pause가 탐지되면 해당 프레임의 끝에서 호출. OnApplicationPause가 호출되면 추가프레임이 발행되어, pause 상태를 나타내는 그래픽 인디케이터가 표시.

업데이트 순서

FixedUpdate(): 사용자가 지정한 프레임마다 호출. 프레임 속도와 관계없이 독립적으로 신뢰가능한 타이머에서 호출. 보통 물리효과가 적용된 RigidBody등을 사용한 오브젝트에 사용

Update() : 프레임마다 한번씩 호출 물리효과가 적용되지 않은 오브젝트의 움직임, 단순타이머, 키 입력시 사용됨.

LateUpdate() : 모든 Update함수가 끝난뒤 호출 일반적인 사용은 오브젝트를 따라가는 카메라등에 사용 

렌더링

OnPreCull() : __ 카메라가 씬을 추려내기 전에 호출됩니다. 컬링(Culling)하여 카메라에 어떤 오브젝트를 표시할 지가 결정됩니다. OnPreCull은 컬링이 발생하기 직전에 호출됩니다.

OnBecameVisible() / OnBecameInvisible() : 오브젝트가 카메라에 표시되거나 표시되지 않게 될 때 호출됩니다.

OnWillRenderObject() : 오브젝트가 표시되면 각 카메라에 한 번 호출됩니다.

OnPreRender() : 카메라가 씬의 렌더링을 시작하기 전에 호출됩니다.

OnRenderObject() : 모든 씬 렌더링 종료 후에 호출됩니다. GL 클래스 또는 Graphics.DrawMeshNow을 사용하여 이시점에 사용자 지정 지오메트리를 그릴 수 있습니다.

OnPostRender() : 카메라가 씬의 렌더링을 종료한 후 호출됩니다.

OnRenderImage() : 화면 렌더링이 완료되고, 화면 이미지 처리가 가능하게 된 후에 호출됩니다.

OnGUI() : GUI 이벤트에 따라 프레임마다 여러 차례 호출됩니다. 레이아웃 및 리페인트 이벤트가 먼저 처리된 후 레이아웃 및 키보드 / 마우스 이벤트가 각 입력 이벤트에 대해 처리됩니다.

OnDrawGizmos() : 시각화를 위한 씬 뷰에서 기즈모(Gizmos)를 그리는 데 사용됩니다.

코루틴

yield : 다음 프레임의 모든 Update가 호출된 후에 속행

yield WaitForSeconds(float time) : 프레임에 대한  모든 Update 함수가 호출된 후 지정된 시간 지연 후 속행.

yield WaitForFixedUpdate() : 모든 스크립트의 모든 FixedUpdate가 후출된 후 호출

yield WWW__ WWW : 다운로드 완료 후 속행

yield StartCoroutine 코루틴을 연결하고 MyFunc 코루틴이 먼저 완료될 때까지 기다린다.

오브젝트를 파기할 때

OnDestroy : 오브젝트 생존기간의 마지막 프레임 업데이투 후 OnDestroy가 호출됨. (오브젝트는 Object.Destroy 또는 씬 종료시에 파기됩니다)

종료 시

OnApplicationQuit() : 응용프로그램이 종료시 에디터에선 재생을 종료하면 모든 게임오브젝트에서 호출

OnDisable() : 동작이 비활성화가 될 때 호출

 

스크립트 라이프 사이클 플로우차트

출처 : https://docs.unity3d.com/kr/530/Manual/ExecutionOrder.html

'unity' 카테고리의 다른 글

[Unity/C#] Corutine사용법  (0) 2020.01.08

관련글 더보기