게임개발

[Unity] 함수

seung_318 2021. 11. 13. 23:01

Awake : 게임 오브젝트가 생성할 때, 최초로 실행한다.

Start : 업데이트 시작 직전, 최초 실행한다. 

Awake와 Start 함수는 딱 한 번만 실행된다.

위 두 개의 함수는 초기화 영역으로 초기화가 끝나면 물리 연산 영역이 실행된다.

 

FixedUpdate : 물리 연산을 하기 전에 실행되는 업데이트 함수이다.

업데이트 함수는 1초에 여러번 작동하는 함수이다.

고정된 실행 주기로  CPU를 많이 사용한다.

보통 물리 연산과 관련된 로직만 넣는다.

게임을 실행시키면 위와 같이 반복 실행하는 것을 볼 수 있다.

이렇게 물리 연산 영역을 다하면 게임로직 영역이 실행된다.

 

Update : 게임 로직 업데이트

물리 연산에 관련된 로직을 제외한 주기적으로 변하는 로직을 넣을 때 사용한다.

FixedUpdate와 달리 환경에 따라 실행 주기가 달라질 수 있다. 

FixedUpdate와 Update가 실행된 후에는 마지막 Update로 LateUpdate가 실행된다.

 

LateUpdate : 모든 업데이트가 끝난 후 실행된다.

보통 캐릭터를 따라가는 카메라나 로직의 후처리를 담당한다.

어떠한 이유로 로직을 삭제하게 된다면 해체 영역으로 들어가게 된다.

 

OnDestory : 게임 오브젝트가 삭제될 때

오브젝트가 삭제되기 직전 무언가를 남기고 삭제될 때 사용된다.

게임을 실행 시킨 뒤 오브젝트를 삭제하면

아래와 같이 오브젝트가 삭제되면 Destory 함수가 실행된다.

게임 오브젝트를 삭제하지 않고 켰다 끌 수 있는데 이것을 활성화, 비활성화라고 한다.

 

OnEnable : 게임 오브젝트가 활성화 되었을 때 실행된다.

활성화는 초기화 영역과 물리 영역 사이에 위치한다.

최초 1회 실행이 아닌 켰다 끌 때 마다 실행된다.

 

OnDisable : 게임 오브젝트가 비활성화 되었을 때 실행된다.

게임 로직 영역과 삭제 영역 사이에 위치한다.

OnEnable과 마찬가지로 최초 1회 실행이 아닌 켰다 끌 때 마다 실행된다.

모든 업데이트가 끝난 뒤 오브젝트가 비활성화 되거나 삭제 될 때 실행된다.

 

여태 배운 함수들을 실행되는 순서대로 나열해보면 다음과 같다.

초기화 > 활성화 > 물리 > 게임 로직 > 비활성화 > 해체 

모든 업데이트 과정을 마치고 오브젝트를 끄면 비활성화 되는데

이 상태에서 다시 켜면 활성화 단계부터 다시 시작되어진다.

 

 

참고 : 골드메탈