Unity
MonoBehaviour 와 생명주기란 무엇일까?
MuscleDeveloper5683
2024. 3. 8. 19:55
728x90
SMALL
유니티(Unity)에서 MonoBehaviour(모노비헤이비어)는 스크립트를 작성하여 게임 오브젝트의 동작을 제어하는 데 사용되는 기본 클래스 중 하나이다. MonoBehaviour는 C# 언어를 기반으로 한 Unity 스크립트에서 주로 상속되는 클래스이다.
MonoBehaviour 클래스는 유니티 엔진이 게임 오브젝트의 생명주기를 관리하고, 특정 이벤트와 함수 호출을 통해 스크립트의 동작을 제어하는 데 사용되는 기본 클래스 이다. 주요 생명주기 함수에는 Start, Update, FixedUpdate, LateUpdate, OnEnable, OnDisable 등이 있습니다
생명주기 함수에 관하여
생명주기란? - MonoBehaviour 를 상속받는 순간 자동으로 Scene에서 흐름이 생기면서 자동으로 호출해주는 함수들이 생기는데 이 흐름을 생명주기 라고 한다.
반대로 MonoBehaviour 를 상속받지 않는 순간 생명주기 함수들은 사용 불가하다.
❗️주의❗️: 생명주기는 사용자가 호출하지 않아도 프로그램의 흐름에 따라 자동으로 호출된다. 즉 사용하지 않는 생명주기 함수는 지워주는게 성능에 좋다.
생명주기 순서(유니티 공식 홈페이지 참조)
위 생명주기의 간소화 순서
자주 사용되고 중요한 생명주기 함수들
- Awake(): 스크립트가 활성화되면 가장 먼저 호출되는 메서드이며 일반적으로 초기화 코드를 작성하는 데 사용된다.
- OnEnable(): 스크립트가 활성화될 때 호출되는 메서드이며. 주로 오브젝트가 활성화될 때 필요한 추가 초기화 코드를 작성하는 데 사용된다.
- Start(): Awake 다음에 호출되는 메서드로, 스크립트가 활성화된 후 한 번만 호출된다. 일반적으로 초기화 및 설정 코드를 작성하는 데 사용된다.
- FixedUpdate(): 물리적 연산이 필요한 경우 사용되는 메서드로, 일정한 간격으로 호출되며 주로 물리 엔진 관련 작업에 사용된다.
- OnTriggerXXX: 게임내 Trigger 이벤트 발생시 호출된다. - OnTriggerEnter , OnTriggerStay , OnTriggerExit 함수들을 통해 이벤트를 감지 할 수 있다.
- OnCollisionXXX: 게임내 Collision 이벤트 발생시 호출된다. - OnCollisionEnter, OnCollisionStay, OnCollisionExit 를 통해 이벤트를 감지 할 수 있다.
- Update(): 매프레임마다 호출되는 메서드로, 게임 로직이나 상태 업데이트와 같이 매 프레임마다 실행되어야 하는 코드를 작성하는 데 사용된다.
- LateUpdate(): 모든 Update 메서드가 호출된 후에 호출되는 메서드로, 주로 카메라의 트래킹 및 후처리와 같이 다른 업데이트 메서드가 끝난 후에 실행되어야 하는 코드를 작성하는 데 사용된다.
- OnDisable(): 스크립트가 비활성화될 때 호출되는 메서드 주로 정리 코드나 리소스 해제와 같은 작업에 사용된다.
- OnDestroy(): 오브젝트가 파괴될 때 호출되는 메서드 리소스 해제 및 정리 코드를 작성하는 데 사용된다.
- OnApplicationQuit: 애플리케이션 종료 전 모든 게임 오브젝트에서 호출된다. 에디터에서 사용자가 플레이 모드를 중지할 때 호출된다.
정리 - MonoBehavior의 상속받는 대상은 [MonoBehavior -> Behavior -> Component -> Object] 이다.
1. Awake, Start, Update 와 같은 함수 사용을 해야하면 MonoBehavior를 상속받아야한다.
2. 유니티에서 제공하는 스크립트의 기능을 사용하겠다는 뜻이다.
3. 다른 클래스에서 해당 스크립트를 사용할 때 GetComponent<클래스명> 으로 사용하면 된다.
4. 사용하지 않는 생명주기 함수들은 삭제해주는것이 성능향상에 도움이 된다.
728x90