▣ 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가 제공하는 자동화된 관리 기능(예: 게임 오브젝트 활성화/비활성화, 파괴)을 활용할 수 없으므로, 복잡도가 증가.
'[ Unity ] > - 유니티 실습' 카테고리의 다른 글
유니티 new 키워드 (0) | 2025.01.13 |
---|---|
유니티 GitHub 기본 연동방법 (0) | 2025.01.10 |
유니티 반복문 (0) | 2025.01.09 |
유니티 재시작시 플레이어 위치 설정 (0) | 2024.11.07 |
유니티 비활성화 오브젝트 찾는 함수(GetChild) (0) | 2024.10.30 |
댓글