본문 바로가기
[ Unity ]/- 유니티 실습

유니티 MonoBehaviour

by MRG 2025. 1. 10.
728x90
반응형

▣ MonoBehaviour란?
MonoBehaviour는 Unity의 모든 스크립트가 기본적으로 상속받는 클래스입니다. Unity 엔진과 스크립트를 연결하는 역할을 하며, 게임 오브젝트에 스크립트를 부착하고 다양한 이벤트 메서드를 사용할 수 있게 합니다.

▣  MonoBehaviour를 사용하는 이유
Unity의 게임 오브젝트와 상호작용하기 위해 필요.
Unity의 라이프사이클 이벤트(Start, Update 등)를 활용 가능.
스크립트를 통해 씬에 존재하는 오브젝트를 제어할 수 있음.

▣  주요 이벤트 메서드
MonoBehaviour를 상속하면 Unity의 특정 이벤트에서 자동으로 호출되는 메서드를 사용할 수 있습니다.

초기화 관련
Awake():
스크립트가 활성화될 때 호출.
오브젝트의 초기화에 적합.


Start():
스크립트가 활성화된 후 첫 번째 프레임 전에 한 번 호출.
다른 스크립트의 초기화가 끝난 후 실행되므로 안전하게 의존 관계를 설정할 수 있음.


업데이트 관련
Update():
매 프레임마다 호출.
주로 캐릭터 이동이나 지속적인 게임 로직에 사용.


FixedUpdate():
일정한 시간 간격으로 호출.
물리 연산에 적합.


LateUpdate():
모든 Update가 호출된 후에 실행.
카메라 추적 등 순서가 중요한 작업에 사용.


활성화/비활성화 관련
OnEnable():
스크립트가 활성화될 때 호출.


OnDisable():
스크립트가 비활성화될 때 호출.


충돌 관련
OnCollisionEnter(Collision collision):
다른 물체와 충돌할 때 호출.


OnTriggerEnter(Collider other):
트리거(Collider가 IsTrigger 활성화)와 충돌할 때 호출.


기타
OnDestroy():
오브젝트가 파괴될 때 호출.


Coroutine:
StartCoroutine과 함께 사용해 비동기적인 작업을 실행.

 

 



▣ MonoBehaviour 없이 개발하면 어떻게 되는가?


Unity 이벤트 사용 불가:
Start(), Update() 등 Unity의 기본 라이프사이클 메서드를 사용할 수 없음.


GameObject와 연결 불가:
MonoBehaviour를 상속하지 않으면 스크립트를 게임 오브젝트에 부착할 수 없고, Unity 에디터에서 컴포넌트로 추가되지 않음.


Unity API 제한:
Transform, Rigidbody, Collider 등의 Unity 엔진 API를 사용할 수 없음.


직접적인 메모리 관리 필요:
Unity가 제공하는 자동화된 관리 기능(예: 게임 오브젝트 활성화/비활성화, 파괴)을 활용할 수 없으므로, 복잡도가 증가.

728x90
반응형

댓글