게임 엔진/Unity

[Unity] Update, Start, OnEnable, OnDisable

겜도리도리 2022. 6. 28. 23:53
반응형

개요

유니티에서 일정 시점에 호출되는 함수들이다.

Awake

게임오브젝트가 Instantiate될 때 호출된다.

게임오브젝트가 활성화되어 있어야 호출된다.

OnEnable

오브젝트가 활성화될 때 한 번 실행된다.

게임오브젝트스크립트 컴포넌트 모두 활성화되어있어야 호출된다.

OnDisable

오브젝트가 비활성화될 때 한 번 실행된다.

참고로 gameObject.SetActive(false)와 this.enabled = false는 다르다.

gameObject.SetActive(false)는 게임오브젝트 자체를 비활성화하는 거라면,

this.enabled = false는 스크립트 컴포넌트를 비활성화하는 것이다. (게임오브젝트는 활성화)

Start

게임오브젝트가 Instantiate되고 나서 호출된다. (Awake보다 나중에 호출)

게임오브젝트 스크립트 컴포넌트 모두 활성화되어있어야 호출된다.

Update

매 프레임마다 호출된다.

게임오브젝트 스크립트 컴포넌트 모두 활성화되어있어야 호출된다.

LateUpdate, FixedUpdate등도 존재한다.

다음과 같이 스크립트를 짜주고, 활성화되어있는 오브젝트에 넣으면 다음과 같은 순서대로 로그가 찍힌다.

호출순서가 Awake - OnEnable - Start - Update 순인 것을 확인할 수 있다.

 

더 자세한 생명 주기는 Unity 메뉴얼에서 확인할 수 있다.

https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html

 

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

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

docs.unity3d.com

 

반응형