Version: 2023.1
언어: 한국어
MonoBehaviour
트랜스폼

오브젝트

UnityEngine 네임스페이스에는 Object라고 불리는 클래스가 있습니다. 이 클래스는 Unity가 에디터에서 참조할 수 있는 모든 오브젝트의 기본 클래스 역할을 합니다. UnityEngine.Object에서 상속되는 클래스는 인스펙터의 필드로 드래그앤 드롭하거나, 오브젝트 필드 옆에 있는 오브젝트 피커를 사용하여 선택하도록 해주는 특수 기능을 지원합니다.

이 페이지는 Object 클래스의 개요, 그리고 이 클래스를 사용하는 스크립팅의 일반적인 용도에 대해 설명합니다. Object 클래스의 모든 멤버에 대한 전체 레퍼런스는 Object 스크립트 레퍼런스를 참조하십시오.

인스펙터 창에 있는 오브젝트 필드의 예입니다. 오브젝트 피커는 필드 오른쪽에 있는 원형 아이콘입니다.
인스펙터 창에 있는 오브젝트 필드의 예입니다. 오브젝트 피커는 필드 오른쪽에 있는 원형 아이콘입니다.

스크립팅을 통해 자체 오브젝트를 생성하는 경우 Object에서 직접 상속하지 않고, 목표에 더욱 맞게 설계된 클래스에서 상속해야 합니다.

예를 들어 게임 오브젝트에 추가할 수 있는 커스텀 컴포넌트를 작성하고 게임 오브젝트가 수행하는 작업을 제어하거나 관련한 일부 기능을 제공하려면 MonoBehavior에서 상속해야 합니다.

또는 직렬화된 데이터를 저장할 수 있는 커스텀 에셋을 생성하려면 ScriptableObject에서 상속해야 합니다. 이 두 가지 모두 Unity의 Object 클래스에서 상속하지만, 해당 목적에 적합한 추가 기능을 제공합니다.

참고: Unity의 Object 클래스는 UnityEngine 네임스페이스에 있습니다. 이 클래스는 .NET의 기본 Object 클래스와 다릅니다. 이름은 같지만 시스템 네임스페이스이며, 기본 스크립트 템플릿에 포함되지 않으므로 이름이 충돌하지 않습니다. 인스펙터에서 할당할 필요가 없는 클래스를 스크립트에 생성하려는 경우 여전히 .NET의 System.Object에서 클래스를 상속할 수 있습니다.

Unity의 Object 클래스는 GameObject, Component, Material, Texture, Mesh, Sprite 등을 비롯한 대부분의 Unity 빌트인 클래스에 대한 기본 클래스 역할을 합니다. 즉 인스펙터에서 이러한 모든 타입을 이 레퍼런스 필드에 드래그 앤 드롭할 수 있습니다.

인스펙터의 필드가 특정 타입의 클래스(예: Texture)를 지정하면 Unity는 다른 타입의 오브젝트를 해당 필드에 드래그 앤 드롭하지 못하도록 제한하고, 오브젝트 피커는 올바른 타입의 오브젝트만 표시합니다.

인스펙터에 있는 세 가지 타입의 오브젝트 필드.
인스펙터에 있는 세 가지 타입의 오브젝트 필드.

위 이미지에는 인스펙터에 있는 세 가지 타입의 오브젝트 필드가 나와 있습니다.

첫 번째는 Object 타입으로, 모든 Unity 오브젝트를 이 필드에 할당할 수 있습니다. 게임 오브젝트, 텍스처, 오디오 클립 등 원하는 타입의 오브젝트를 이 필드에 드래그 앤 드롭할 수 있습니다. 일반적으로 크게 유용하지는 않으며, 필드가 허용할 타입을 더 구체적으로 설정하는 것이 좋습니다.

두 번째는 괄호 안에 표시된 “Texture” 타입입니다. 텍스처는 빌트인 Unity 클래스이고, 이는 텍스처 에셋을 이 필드에 드래그 앤 드롭할 수 있음을 의미합니다. Unity에는 Texture2D와 RenderTexture라는 두 가지 클래스가 있습니다. 이 두 가지 타입 중 하나를 이 필드에 드래그 앤 드롭할 수 있습니다.

세 번째는 “Food” 타입입니다. 이 이름을 가진 빌트인 Unity 클래스는 없으므로, 이 예제는 Object에서 상속된 사용자 생성 커스텀 클래스를 보여줍니다. 나중에 “Apple”, “Banana” 등과 같이 “Food”에서 상속하는 클래스를 생성하려는 경우 이 클래스의 인스턴스에 대한 레퍼런스를 이 필드에 할당할 수 있습니다. 이는 이 클래스들이 해당 타입에서 상속되기 때문입니다.

Object 클래스는 특정 타입의 오브젝트에 대한 레퍼런스를 찾을 뿐만 아니라 적절하게 인스턴스화하고 파괴할 수 있도록 해주는 몇 가지 메서드를 제공합니다.

Object 클래스의 API에 대한 자세한 내용은 Object 스크립트 레퍼런스 페이지를 참조하십시오.

Object

MonoBehaviour
트랜스폼