빙수달 게임 개발 노트

[Unity] 유니티 스크립트 라이프 사이클(Unity Script Life Cycle) 본문

Devpedia : Game

[Unity] 유니티 스크립트 라이프 사이클(Unity Script Life Cycle)

빙수달 2025. 1. 7. 11:59

(1)   MonoBehaviour 란?

모든 Unity 스크립트가 상속받는 기본 클래스이다. MonoBehaviourUnity에서 C# 스크 립트를 만들 때 프로젝트 창, MonoBehaviour에서 자동으로 상속되며 템플릿 스크립트를 제 공한다.

 

(2) 유니티 생명주기(Unity Lifecycle)란?

  Monobehaviour가 Scene에서 살아가는 동안 일정한 흐름이 생기고, 엔진에서 자동으로 호 출해주는 함수들이 생기는데 이 패턴의 흐름을  '생명 주기(Life cycle)'라고 한다. 함수들의 호출 시기는 사용자가 정할 수 없으므로 생명주기에 대해 이해하는 것은 유니티를 다루는데 필 수이다. 아래의 그림은 거대한 유니티 생명주기의 산맥 중에서 굵직굵직한 중요한  함수들의 흐름을 따로 뽑아서 그린 것이다.

유니티 생명주기(Unity Lifecycle)

- Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행된다. 객체의 속성을 초기값으로 설정해 줄 때 사용한다.

 

- Awake : 스크립트가 실행될 때 한 번만 호출된다. 모든 오브젝트가 초기화된 후 호출되기 때문에 GameObject.Find 같은 명령문을 안전하게 사용할 수 있다.  Awake  함수는  언제나  Start 함수 전에 호출되므로 초기화 순서를 정할  있게 한다.(Coroutine 사용 불가)

 

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

 

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

 

- FixedUpdate : 주로 물리 엔진을 사용하는 경우 일정 시간 간격으로 힘을 가할 때 사용하        는 함수이다. 발생 주기가 일정하다. (Defalut : 0.02초)

 

- Update : 프레임마다 호출되는 함수로 게임의 핵심 로직에 사용된다. 스크립트가 활성화 되있어야 사용 가능하고, 주기가 일정하지 않다.

 

- LateUpdate : 모든 Update 함수가 실행되고 나서 호출된다. 주로 카메라 이동 로직에 사 용한다.

 

- OnDisable : 게임 오브젝트 또는  스크립트가  비활성화  되었을  때  호출된다.(Coroutine 사 용 불가)

 

- OnDestroy : 오브젝트 생존기간의 마지막 프레임이 업데이트 된 후 실행된 다.(Object.Destroy 또는 씬 종료 시)

 

- OnApplicationQuit : 응용프로그램 종료 전에 모든 오브젝트에서 호출된다. 에디터에서는 플레이 모드를 중지하면 나타난다.