[Unity] 유니티 생명주기

⭐ 유니티 생명주기

유니티에선 Start(), Update()와 같은 기본 호출 함수들이 있습니다. 프로젝트를 실행할 때 이 함수들은 자동으로 실행되며, 이러한 함수들이 실행되는 주기를 뜻합니다.

 

 

유니티 생명 주기

 

● 유니티 공식 문서에서 지원하는 생명주기 이미지입니다.

● 프로젝트가 실행될 때 위에서부터 아래 순서로 메서드가 호출됩니다.

유니티 공식 문서

 

 

 

자주 사용되는 유니티 생명주기 메서드


특정 상황에 자동으로 호출되는 MonoBehavior 클래스의 이벤트 함수들을 알아보겠습니다.

 

 

 

Awake()

● 게임 오브젝트가 생성된 직후 가장 먼저 호출되는 함수입니다.

● 주로 변수 초기화와 같은 초기 설정을 위해 사용됩니다.

● 오브젝트가 비활성화 상태여도 실행된다는 특징이 있습니다.

 

 

Start()

● Awake()가 호출된 이후 첫 번째 프레임이 업데이트되기 직전에 한 번 호출됩니다.

● 다른 오브젝트의 Awake()가 완료된 후 실행되어야 하는 로직에 주로 사용됩니다.

● Awake()와 마찬가지로 변수 초기 설정 등에 사용되기도 합니다.

 

 

Update()

● 매 프레임마다 실행되는 함수로 가장 자주 사용되는 함수입니다.

● 가장 자주 사용되는 만큼 잘못된 로직에 의한 무한루프, 프레임 드랍등을 주의해야합니다.

● 주로 입력 처리나 계속 실행되어야 하는 로직에 사용됩니다.

 

 

FixedUpdate()

● Update()와 비슷하게 계속 실행되지만 고정적인 주기로 실행됩니다. (주로 기본값은 0.02초, 설정에서 변경 가능)

● 주로 물리 엔진과 연관된 코드나, 충돌 처리 등의 연산에 사용됩니다.

 

 

LateUpdate()

● Update() 함수 다음에 호출되는 메서드입니다.

● 주로 카메라 이동, 애니메이션 후처리 등을 구현할 때 사용합니다.

 

 

OnEnable()

● 오브젝트가 활성화 되는 시점에 호출됩니다.

● 일회성이 아닌 활성화 될 때마다 계속 호출됩니다.

 

 

OnDisable()

● 오브젝트가 비활성화 되는 시점에 호출됩니다.

● 일회성이 아닌 비활성화 될 때마다 계속 호출됩니다.

 

 

OnDestroy()

● 오브젝트가 파괴되는 시점에 호출됩니다.

 

 

OnTriggerEnter() / OnTriggerEnter2D()

● 오브젝트가 다른 오브젝트의 콜라이더 영역에 진입하는 순간에 한 번 실행됩니다.

 

 

OnTriggerStay() / OnTriggerStay2D()

● 오브젝트가 다른 오브젝트의 콜라이더 영역 안에 있을 때 매 프레임 실행됩니다.

 

 

OnTriggerExit() / OnTriggerExit2D()

● 오브젝트가 다른 오브젝트의 콜라이더 영역에서 빠져나오는 순간에 한 번 실행됩니다.

 

 

OnCollisionEnter() / OnCollisionEnter2D()

● 다른 오브젝트와 충돌될 때 한 번 실행됩니다.

 

 

OnCollisionStay() / OnCollisionStay2D()

● 다른 오브젝트와 충돌 중일 때 매 프레임 실행됩니다.

 

 

OnCollisionExit() / OnCollisionExit2D()

● 다른 오브젝트와 충돌에서 벗어날 때 한 번 실행합니다.