본문 바로가기

공부/Unity

Unity_Life Cycle(생명 주기)

유니티의 Life Cycle은 다음과 같다.

 

Reset - Awake - OnEnable - Start
FixedUpdate - OnTrigger - Oncollision
Update - LateUpdate
OnDisalbe - OnDestroy - OnApplicationQuit

 

 

각각의 특징

 

 

Reset - 오브젝트를 생성 한 뒤 인스펙터 뷰에서 리셋을 누를 경우 실행됨
객체의 속성을 초기 값으로 설정해줄 때 사용

 

 

Awake - 스크립트가 실행될 때 한 번만 호출된다.
모든 오브젝트들이 초기화 된 후 호출된다.
Awake 함수는 항상 Start 함수가 호출되기 전에 호출되므로
초기화 순서를 정할 수 있다.

 

 

OnEnable - 인스펙터 뷰에서 오브젝트 체크를 사용하여 게임 오브젝트를 활성화 할 때 호출된다.
활성화할 때마다 호출된다.

 

 

Start - Update 함수 호출 전에 한 번만 호출된다.
다른 모든 스크립트의 Awake가 실행된 이후에 실행된다.
오브젝트가 활성화 되어 있어야 함수가 호출된다.

 

 

FixedUpdate - 주로 물리 엔진을 사용할 때 일정 시간 간격으로 힘을 가할 때 사용하는 함수이다.
호출 주기가 일정하다(Default - 0.002초)
규칙적인 시간 간격으로 호출된다.
이 함수가 호출된 후에 물리 계산이 수행된다.
때문에 리지드바디 같은 물리에 영향을 받는 것들은 업데이트 함수에서 작업하는 것보다 이 함수에서 호출해야 한다.
(업데이트는 불규칙한 함수이기에 충돌 검사가 정상적으로 이루어지지 않을 수도 있기 때문이다.)

 

 

Update - 프레임마다 호출되는 함수이다.
게임의 핵심 로직에 사용된다.
스크립트가 활성화되어있어야 사용 가능하다.
주기가 일정하지 않다.
주기적으로 호출되지 않고 조정이 필요한 대부분의 기능이 구현되는 곳이다.
1 프레임이 처리되는데 걸리 시간은 Time.deltaTime을 통해서 체크할 수 있다.

 

 

LateUpdate - 모든 Update 함수가 실행되고 나서 호출된다.
일반적으로 카메라 이동 로직에 사용한다.
이유는 업데이트 문에서 카메라가 촬영할 오브젝트의 활동이 모두 끝나고 카메라가 이동해야 하기 때문이다.

 

 

OnDisable - 게임 오브젝트나 스크립트가 비 활성화되었을 때 호출되는 함수이다.

 

 

OnDestroy - 오브젝트의 라이프 사이클의 마지막 프레임이 업데이트된 후 실행된다.
Object.Destroy 또는 Scene종료 시 호출된다.

 

 

OnApplicationQuit - 프로그램 종료 전에 모든 오브젝트에서 호출되는 함수이다.
에디터에서는 Play Mode를 중지하면 호출된다.

'공부 > Unity' 카테고리의 다른 글

Unity_Inspector  (0) 2020.04.05
Unity_Transform  (0) 2020.04.05
Unity_Unity 기본 정보  (0) 2020.04.05