[Unity] [나름 깔끔 정리] Awake, Start, OnEnable, OnDisable, Update

에크까망·2022년 4월 22일

들어가며

요즘 다시 unity를 보고 있는데 할 때마다 매번 헷갈리는 event를 정리해 놓으려고 한다.

용어 약속

GameObject, Componet 를 활성화 시키기 위한 Check 를 On/Off 라고 호칭 하겠다. 즉, CheckBox가 켜져 있으면 On, 아니면 Off.

호출 시점에 따라

Awake

대상이 GameObject 이다. GameObject가 On 될때 한번만 호출 된다. 즉, Component 가 On/Off 되어 있는 것과 는 상관없이, GameObject 가 최초 On 될때 딱 한 번 호출 된다.

처음부터 On 되어 있고 scene 에 배치되어 있다면 play 될때 바로 호출된다.

OnEnable/OnDisable

대상이 Component(MonoBehaviour) 다. Component의 Enable 조건은 GameObject-On & Component-On 일 때이고, 둘 중 하나라도 Off 면 Disable 이다.

Component의 초기 상태를 'Disable'로 출발해서 상태가 Enable/Disable로 변경될 때마다 호출된다. 따라서, Enable이었다면 GameObject 와 Component 가 둘 중 하나라도 Off 되면 'Disable' 이 호출된다

Start

대상이 Component(MonoBehaviour) 다. Component가 Enable 이고 최초 tick을 받아서 Update가 호출될 때 Update 보다 먼저 한 번만 호출된다.

Update

대상이 Component(MonoBehaviour) 다. Component 가 Enable 일 때, tick 을 받을 때마다 호출된다.

호출 횟수에 따라

한 번만 호출

Awake, Start

여러 번 호출

OnEnable, OnDisable, Update

호출 순서에 따라

Awake -> OnEnable -> Start -> Update

마무리

설마 또 헷갈린 건 아니겠지...?

profile
Game Client Programmer

0개의 댓글