[유니티] Object에서 MonoBehaviour까지

송칭·2023년 12월 17일
0

유니티에서 새로운 C# 스크립트를 생성하면 자동으로 MonoBehavior 클래스가 상속된다.

이 클래스를 계속 거슬러 올라가면 다음과 같은 상속 구조를 발견할 수 있다.

이 네가지 클래스 각각의 기능과 역할은 무엇일까?

Object


먼저 맨 위의 Object부터 살펴보자.
Object 클래스는 모든 유니티 객체의 최상위 클래스로 GameObject, Component와 같은 기본 기능을 포함한다. 공식 문서에 따르면, 유니티가 에디터에서 참조할 수 있는 모든 오브젝트의 기본 클래스 역할을 하며, Object 클래스는 메모리 관리 및 특정 타입의 오브젝트에 대한 참조와 인스턴스화, 파괴를 위한 기본적인 기능을 제공한다.

Component

다음으로, Component 클래스는 모든 컴포넌트의 기본 클래스이다. GameObject에 붙어서 해당 오브젝트의 동작을 제어하고 구성할 수 있다. Transform, RigidBody, Collider 등 다양한 컴포넌트들이 이 Component 클래스를 상속받아서 구현된다.

유니티는 컴포넌트 구조를 이용해 게임을 설계한다.

때문에 기능들을 추가하고 삭제할 수 있는 이 컴포넌트들의 코드 구현체는 모두 이 Component 클래스를 상속받아야한다.

Behaviour

Behaviour 클래스는 범용적인 컴포넌트의 특성과 동작을 정의한다. 이 클래스는 컴포넌트가 가질 수 있는 활성화/비활성화나 게임 오브젝트의 업데이트와 관련된 메소드들을 가지고 있다. 직접 사용하기보단 후술할 MonoBehaviour 클래스를 상속하는데 사용된다.

MonoBehaviour

MonoBehaviour 클래스는 유니티에서 스크립트를 작성하고 사용하는 주요 클래스이다. 게임 오브젝트에 스크립트를 부착하여 Start(), Update(), FixedUpdate() 등 유니티의 생명 주기 함수를 사용해 해당 오브젝트의 동작과 상호작용을 정의하고 제어할 수 있다.

Behaviour 클래스는 Unity의 컴포넌트 구조를 정의하는 범용적인 클래스이며, MonoBehaviour 클래스는 실제로 게임 오브젝트의 동작을 제어하기 위해 사용되는 특수화된 클래스로 정리할 수 있다.

profile
게임 클라이언트

0개의 댓글