생명주기 Life Cycle

강성원·2023년 11월 29일
0

Unity

목록 보기
1/11

실행하면 사전에 지정한 순서대로 이벤트 함수가 호출된다.

라이프 사이클은 렌더링 파이프만큼이나 세세한 부분이 많지만 자세하고 어려운 내용은 빼고 비교적 쉬운 부분부터 적어본다.

생명주기는 큰 덩어리로 나눌 수 있다.

초기화 -> 물리 연산 -> 게임 로직 -> 해체

1. 초기화 Initialization

1-1. Awake

객체 생성 시에 제일 먼저, 한 번만 호출된다.
게임 오브젝트가(게임이) 시작하고나서 비활성화 돼있으면 호출되지 않으며, 활성화 시에 호출된다.
->스크립트당 한 번만 호출된다.

1-2. OnEnable

오브젝트 활성화 직후에 바로 호출된다.

오브젝트를 비활성화 하고 다시 활성화하면 OnEnable 함수가 호출된다.
->오브젝트 활성화마다 호출된다.

1-3. Start

위에 두 함수 후에 호출되며 오브젝트의 활성화 후에 한 번만 호출되며, 그 후에는 비활성화와 활성화 여부에 상관 없이 호출되지 않는다.
->스크립트당 한 번만 호출된다.


2. 물리 연산 Physics

2-1. FixedUpdate

강체(RigidBody)가 있는 오브젝트에 대한 계산을 해준다.
일정한 시간마다 호출이 되기 때문에 Update보다 적게 혹은 많이 호출될 수도 있다.
프레임이 낮으면 프레임당 여러번 호출 될 수도 있다.


3. 게임 로직

3-1. Update

주요 로직을 Update에 구현해놓는다.
프레임당 한 번 호출된다.
물리 효과 없는 움직임. 키의 입력 등을 처리한다.

3-2. LateUpdate

Update가 끝난 후에 프레임당 한 번 호출된다.
LateUpdate는 보통 3인칭 카메라에 사용된다.
Update에서 오브젝트의 움직임 계산을 완료한 후에 LateUpdate에서 카메라의 움직임과 로테이션을 계산한다.


4. 해체 Decommissioning

4-1. OnDisable

OnEnable 함수와 반대로 객체가 비활성화 되거나 비활성화 상태일 때 호출된다.
스크립트당 여러 번 호출될 수 있다.

4-2. OnDestroy

오브젝트의 마지막 프레임의 업데이트를 마친 후에 호출된다.
객체의 소멸 요청이나 씬의 종료 시에 호출된다.
스크립트당 한 번만 호출된다.

profile
개발은삼순이발

0개의 댓글