Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Object

Base class for all objects Unity can reference.
Read time 2 minutesLast updated 2 days ago

Definition

  • Type: Class
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule
public class Object

Remarks

UnityEngine.Object
is the base class for all built-in Unity objects. Don't derive from or instantiate this class directly. Instead, use the appropriate subclass such as GameObject, MonoBehaviour, or ScriptableObject.
Any public variable you make that derives from
UnityEngine.Object
is shown in the Inspector as a drop target, allowing you to set the value from the GUI.
Some APIs are designed to work with any Unity Object, so Object appears as a type in their signatures. For example, Resources.LoadAll, EditorJsonUtility.ToJson and SerializedObject.
Each instance of a class that derives from
UnityEngine.Object
is linked to a counterpart native object. If the native counterpart is destroyed before the managed object is garbage collected, or if the instance references a missing asset or missing type, the managed instance can be in a detached state.
Detached objects retain their InstanceID, but the object can't be used to call methods or access properties. Comparing objects in this state with
null
evaluates
true
, because of Unity's custom implementation of the equality (
==
) and inequality (
!=
) operators and bool. However, because the managed object is not truly null, a call to
Object.ReferenceEquals(myobject, null)
returns
false
.
The null-conditional operator (
?.
) and the null-coalescing operator(
??
) are not supported with Unity Objects because they can't be overridden to treat detached objects the same as null. It's only safe to use those operators if the checked objects are guaranteed to never be in a detached state.
Additional Resources: Object in the Unity manual.

Properties

Property

Description

hideFlagsControls whether the object is hidden, saved with the scene, and editable by the user.
nameThe name of the object.

Methods

Method

Description

GetHashCodeReturns the hash code for the object.
GetInstanceIDGets the instance ID of the object.
ToStringReturns the name of the object.

Static Methods

Method

Description

DestroyRemoves a GameObject, component, or asset.
DestroyImmediateDestroys the specified object immediately. Use with caution and in Edit mode only.
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindAnyObjectByTypeRetrieves any active loaded object of the specified type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type
type
.
FindObjectsByTypeRetrieves a list of all loaded objects of Type
type
and sorts the results according to
sortMode
.
InstantiateClones the object
original
and returns the clone.
InstantiateAsyncCaptures a snapshot of the original object that's related to another GameObject and obtains an AsyncInstantiateOperation instance of the resulting objects.

Operators

Operator

Description

operator ==Compares two object references to see if they refer to the same object.
boolDetermines whether the object exists.
operator !=Compares if two objects refer to a different object.