[2025/04/24] 유니티 생명주기(Life Cycle)

오수호·2025년 4월 24일

TIL

목록 보기
10/60

유니티에는 "Monobehavior클래스를 상속받는 클래스로 만들어진 객체에서 자동으로 호출되는 함수"가 있습니다 😎



이 함수들의 호출주기를 곧 유니티의 생명주기라고 부릅니다

그렇다면, 유니티의 생명주기를 책임지는 이 함수들은 어떻게 구성되어 있을까요?

1.Awake
2.OnEnable
3.Reset
4.Start

5.FixedUpdate
6.OnTriggerXXX
7.OnCollisionXXX
8.Update
9.LateUpdate

10.OnDisable
11.OnDestroy

12.OnApplicationQuit

유니티의 생명주기는 위의 함수들이 호출되면서 결정되며

1~4는 오브젝트가 생성될 때
5~9는 유니티가 실행 중일 때 반복적으로
10~11는 오브젝트가 파괴될 때
12는 유니티가 종료될 때

호출됩니다.


Awake

처음 씬이 로드되면, Awake메서드들이 먼저 호출되게 되며 Start함수 호출 이전에 호출되는 사실상 가장 처음에 호출되는 함수입니다.

OnEnable

이 함수는 오브젝트가 활성화 된 직후 호출 됩니다. 유니티에서 사용되는 거의 대부분의 게임오브젝트들은 MonoBehaviour의 파생클래스인데, 이 파생클래스들이 객체로 생성될 때 불리는 함수가 바로 OnEnable입니다. 마찬가지로, Start함수가 호출되기 전에 호출되는 함수입니다.

Start

오브젝트가 생성될 때 가장 마지막으로 호출되는 함수입니다. 보통 이 메서드안에서 객체에 대한 초기화가 이루어집니다. Update()메서드가 호출되기 직전에 호출됩니다.

Reset

Reset의 경우에는 유니티의 씬이 불릴 때 호출되는 것이 아니고, 유니티 내에서 오브젝트를 초기화하는 명령입니다. 보통, 처음 오브젝트를 생성할 때 사용하는 메서드이기 때문에 유니티 생명주기 앞부분에 호출된다고 이해하시면 됩니다.


FixedUpdate

FixedUpdate는 현실시간을 기반으로 정해진 시간마다 한 번 호출됩니다.

Update

Update메서드는 유니티내에서 프레임 당 한 번 호출됩니다. 컴퓨터의 성능에 따라, 단위시간당 지나는 프레임의 수가 다르기 때문에 FixedUpdate와 Update는 같은 시간내에 호출되는 횟수가 다를 수 있습니다.

LateUpdate

LateUpdate는 Update가 호출되고나서 호출되는 메서드로, Update의 호출을 보장하기때문에 Update메서드와 연동해서 호출이 필요한 메서드가 있다면 사용하기 적합합니다.


OnDestroy

오브젝트가 존재하는 마지막 씬의 모든 업데이트 이후 호출됩니다. 즉, 게임 오브젝트가 파괴되기 직전에 모든 업데이트 이후 파괴됩니다.

OnDisable

오브젝트가 비활성 상태가 될 시 호출된다.


OnApplicationQuit

어플리케이션이 종료되기 전 모든 게임오브젝트에서 호출되는 메서드입니다.

profile
게임개발자 취준생입니다

0개의 댓글