빙수달 게임 개발 노트
[Unity] 유니티 스크립트 라이프 사이클(Unity Script Life Cycle) 본문
(1) MonoBehaviour 란?
모든 Unity 스크립트가 상속받는 기본 클래스이다. MonoBehaviour는 Unity에서 C# 스크 립트를 만들 때 프로젝트 창, MonoBehaviour에서 자동으로 상속되며 템플릿 스크립트를 제 공한다.
(2) 유니티 생명주기(Unity Lifecycle)란?
Monobehaviour가 Scene에서 살아가는 동안 일정한 흐름이 생기고, 엔진에서 자동으로 호 출해주는 함수들이 생기는데 이 패턴의 흐름을 '생명 주기(Life cycle)'라고 한다. 함수들의 호출 시기는 사용자가 정할 수 없으므로 생명주기에 대해 이해하는 것은 유니티를 다루는데 필 수이다. 아래의 그림은 거대한 유니티 생명주기의 산맥 중에서 굵직굵직한 중요한 함수들의 흐름을 따로 뽑아서 그린 것이다.

- Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행된다. 객체의 속성을 ㅁ초기값으로 설정해 줄 때 사용한다.
- Awake : 스크립트가 실행될 때 한 번만 호출된다. 모든 오브젝트가 초기화된 후 호출되기 때문에 GameObject.Find 같은 명령문을 안전하게 사용할 수 있다. Awake 함수는 언제나 Start 함수 전에 호출되므로 초기화 순서를 정할 수 있게 한다.(Coroutine 사용 불가)
- OnEable : 인스펙터뷰에서 체크를 통해서 게임 오브젝트를 활성화 할 때 사용된다. 활성화 할 때마다 호출된다.
- Start : Update 함수가 호출되기 전에 한 번만 호출된다. 다른 스크립트의 모든 Awake가 모두 실행된 이후에 실행된다. 스크립트가 활성화 되어 있어야 한다.
- FixedUpdate : 주로 물리 엔진을 사용하는 경우 일정 시간 간격으로 힘을 가할 때 사용하 는 함수이다. 발생 주기가 일정하다. (Defalut : 0.02초)
- Update : 프레임마다 호출되는 함수로 게임의 핵심 로직에 사용된다. 스크립트가 활성화 되있어야 사용 가능하고, 주기가 일정하지 않다.
- LateUpdate : 모든 Update 함수가 실행되고 나서 호출된다. 주로 카메라 이동 로직에 사 용한다.
- OnDisable : 게임 오브젝트 또는 스크립트가 비활성화 되었을 때 호출된다.(Coroutine 사 용 불가)
- OnDestroy : 오브젝트 생존기간의 마지막 프레임이 업데이트 된 후 실행된 다.(Object.Destroy 또는 씬 종료 시)
- OnApplicationQuit : 응용프로그램 종료 전에 모든 오브젝트에서 호출된다. 에디터에서는 플레이 모드를 중지하면 나타난다.
'Devpedia : Game' 카테고리의 다른 글
| [Unity] 드로우 콜(Draw call)과 배칭(Batching) (0) | 2025.01.07 |
|---|---|
| [Unity] 아틀라스 텍스처(Atlas Texture) (0) | 2025.01.07 |