오브젝트
UnityEngine.Object is the base class for all objects the Editor can reference from fields in the Inspector window.
읽는 시간 2분최근 업데이트: 한 달 전
UnityEngine.ObjectUnityEngine.Object
인스펙터 창의 오브젝트 필드 예시입니다. 오브젝트 피커는 필드 오른쪽의 원형 아이콘입니다.
커스텀 클래스의 에서 직접 상속하는 것보다는 목표에 맞게 설계된 클래스에서 상속하는 것이 좋습니다. 예시:
Object- 에 추가할 수 있는 커스텀 컴포넌트를 작성하거나,
GameObject가 수행하는 작업을 제어하거나, 일부 관련 기능을 제공하려면GameObject에서 상속합니다.MonoBehaviour - 직렬화된 데이터를 저장할 수 있는 커스텀 에셋을 생성하려면 에서 상속합니다.
ScriptableObject
둘 다 에서 상속되지만 이러한 목적에 적합한 추가 기능을 제공합니다.
UnityEngine.Object참고: 이름이 충돌하지 않도록 는 기본 스크립트 템플릿에 포함되지 않는 .NET의 기본 와 같지 않습니다. 인스펙터에서 할당할 필요가 없는 클래스를 만들려는 경우 여전히 .NET의 에서 상속할 수 있습니다.
UnityEngine.ObjectSystem.ObjectSystem.ObjectObjectUnityEngine.Object의 특수 동작
UnityEngine.Object
Unity는 현재 C# 클래스를 인스턴스와 함께 사용할 수 없습니다. 따라서 로드된 에셋을 참조하기 위해 를 사용해서는 안 됩니다. 클래스에 대한 자세한 내용은 Microsoft의 WeakReference 기술 자료를 참조하십시오.
WeakReferenceUnityEngine.ObjectWeakReferenceWeakReferenceUnity C# 및 Unity C++가 공유하는 UnityEngine 오브젝트
UnityEngine.Object애플리케이션이 삭제된 에 다시 액세스하려고 하면 Unity는 대부분의 유형에 대한 네이티브 대응 오브젝트를 다시 생성합니다. 이 재생성 동작에는 MonoBehaviour 및 ScriptableObject라는 두 가지 예외가 있습니다. Unity는 이러한 오브젝트가 제거된 후에는 다시 로드하지 않습니다.
UnityEngine.ObjectMonoBehaviourScriptableObjectMonoBehaviourScriptableObjectnull?? 및 ?. 연산자를 오버로드할 수 없으므로 에서 파생된 오브젝트와 호환되지 않습니다. 관리되는 오브젝트가 여전히 존재하는 동안 제거된 또는 에서 사용하는 경우 같음 및 같지 않음 연산자와 동일한 결과를 반환하지 않습니다.
UnityEngine.ObjectMonoBehaviourScriptableObject