TIL/Unity

[Unity] 유니티의 생명주기 (Unity Life Cycle)

Sh_Blog 2023. 11. 16. 09:45

자신이 코딩테스트를 통해 코딩공부를 하고 있었다면 사실 생명주기에 관하여 크게

관심이 없을 것이다. 하지만 유니티를 통한 프로젝트에선 생명주기가 어떻게 구성되는지

정말 중요하다. 이를 신경쓰지 않고 구현한다면 무수한 Null오류가 당신을 반겨줄 것이다.

그렇기 때문에 오늘은 유니티의 생명주기에 관하여 정리하고자 한다.

 

 

 

유니티의 생명주기란?

유니티에서 처음 스크립트를 생성하면 모두 Monovehaviour 클래스를 상속받고 있다.

이 클래스는 시작과, 업데이트 같은 유용한 이벤트에 대한 연결을 제공하며 일정한 흐름에

따라 자동으로 호출된다. 이러한 과정을 유니티의 생명주기라고 부른다.

 

 

생명 주기 흐름

유니티 생명주기

 

생명 주기 기능 설명

 

Awake 

스크립트가 실행될 때  한번만 호출, Start함수 전에 호출되기 때문에 주로 초기화를 담당한다.

 

OnEnable

게임오브젝트가 활성화 될 때 호출 된다.

 

Start

Update가 호출 되기 전 한번만 호출 된다. 모든 Awake 의 실행이 끝나야 실행되며

스크립트가 적용되어 있는 곳이 활성화 상태여야 한다.

 

FixedUpdate

고정된 프레임 주기로 호출, 물리 엔진 적용 후 일정 시간 힘을 가할 때 사용한다.

 

OnTrigger

두 오브젝트의 충돌 감지 기능, 물리 연산을 하지 않는다.

 

OnCollision

두 오브젝트의 충돌 감지 기능, 물리 연산을 하며 두 오브젝트 중 하나가 RigidBody를 가지고 있어야 한다.

 

Update

매 프레임마다 호출

 

OnDisable

오브젝트, 스크립트 비활성화 시 호출된다.

 

OnDestroy

오브젝트의 활성화 마지막 프레임이 업데이트 된 후 실행된다.

 

OnApplicationQuit

응용 프로그램 종료 전 모든 오브젝트에서 호출된다.