# ObjectField

> Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.7/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

## ObjectField(Rect, SerializedProperty)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static void ObjectField(Rect position, SerializedProperty property)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[SerializedProperty]\(/engine/6000.7/script-reference/unityeditor/serializedproperty)): The object reference property the field shows.

## ObjectField(Rect, SerializedProperty, GUIContent)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static void ObjectField(Rect position, SerializedProperty property, GUIContent label)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[SerializedProperty]\(/engine/6000.7/script-reference/unityeditor/serializedproperty)): The object reference property the field shows.**** (\[GUIContent]\(/engine/6000.7/script-reference/unityengine/guicontent)): Optional label to display in front of the field. Pass [GUIContent.none](/engine/6000.7/script-reference/unityengine/guicontent/none.md) to hide the label.

## ObjectField(Rect, SerializedProperty, Type)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static void ObjectField(Rect position, SerializedProperty property, Type objType)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[SerializedProperty]\(/engine/6000.7/script-reference/unityeditor/serializedproperty)): The object reference property the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.

## ObjectField(Rect, SerializedProperty, Type, GUIContent)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static void ObjectField(Rect position, SerializedProperty property, Type objType, GUIContent label)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[SerializedProperty]\(/engine/6000.7/script-reference/unityeditor/serializedproperty)): The object reference property the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.**** (\[GUIContent]\(/engine/6000.7/script-reference/unityengine/guicontent)): Optional label to display in front of the field. Pass [GUIContent.none](/engine/6000.7/script-reference/unityengine/guicontent/none.md) to hide the label.

## ObjectField(Rect, Object, Type, Object)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static Object ObjectField(Rect position, Object obj, Type objType, Object targetBeingEdited)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)):&#x20;

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, Object, Type, bool)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static Object ObjectField(Rect position, Object obj, Type objType, bool allowSceneObjects)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Allow assigning Scene objects. See Description for more info.

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, Object, Type)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

> **Warning:**
>
> **Deprecated.** Check the docs for the usage of the new parameter 'allowSceneObjects'.

```csharp
public static Object ObjectField(Rect position, Object obj, Type objType)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, string, Object, Type, Object)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static Object ObjectField(Rect position, string label, Object obj, Type objType, Object targetBeingEdited)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Optional label in front of the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)):&#x20;

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, string, Object, Type, bool)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static Object ObjectField(Rect position, string label, Object obj, Type objType, bool allowSceneObjects)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Optional label in front of the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Allow assigning Scene objects. See Description for more info.

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, string, Object, Type)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

> **Warning:**
>
> **Deprecated.** Check the docs for the usage of the new parameter 'allowSceneObjects'.

```csharp
public static Object ObjectField(Rect position, string label, Object obj, Type objType)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Optional label in front of the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, GUIContent, Object, Type, Object)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static Object ObjectField(Rect position, GUIContent label, Object obj, Type objType, Object targetBeingEdited)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[GUIContent]\(/engine/6000.7/script-reference/unityengine/guicontent)): Optional label in front of the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)):&#x20;

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, GUIContent, Object, Type, bool)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

```csharp
public static Object ObjectField(Rect position, GUIContent label, Object obj, Type objType, bool allowSceneObjects)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[GUIContent]\(/engine/6000.7/script-reference/unityengine/guicontent)): Optional label in front of the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Allow assigning Scene objects. See Description for more info.

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```

## ObjectField(Rect, GUIContent, Object, Type)

Makes an object field. You can assign objects either by drag and drop objects or by selecting an object using the Object Picker.

> **Warning:**
>
> **Deprecated.** Check the docs for the usage of the new parameter 'allowSceneObjects'.

```csharp
public static Object ObjectField(Rect position, GUIContent label, Object obj, Type objType)
```

### Parameters

**** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)): Rectangle on the screen to use for the field.**** (\[GUIContent]\(/engine/6000.7/script-reference/unityengine/guicontent)): Optional label in front of the field.**** (\[Object]\(/engine/6000.7/script-reference/unityengine/object)): The object the field shows.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): The type of the objects that can be assigned.

### Returns

| Type                                                            | Description                               |
| --------------------------------------------------------------- | ----------------------------------------- |
| [Object](/engine/6000.7/script-reference/unityengine/object.md) | The object that has been set by the user. |

### Remarks

Ensure that the **allowSceneObjects** parameter is false if the object reference is stored as part of an asset, since assets can't store references to objects in a Scene.\
&#x20;If the ObjectField is part of a custom Editor for a script component, use EditorUtility.IsPersistent() to check if the component is on an asset or a Scene object. \
&#x20;See example in [Editor](/engine/6000.7/script-reference/unityeditor/editor.md) class.

![EditorGUIObjectField (ObjectField)](/api/media?file=/engine/6000.7/media/images/EditorGUIObjectField.png)

*Object field in an Editor Window.*

### Examples

```csharp
using UnityEditor;
using UnityEngine;
using System.Collections;

//Select the dependencies of the found GameObject
public class EditorGUIObjectField : EditorWindow
{
    public GameObject obj = null;
    [MenuItem("Examples/Select Dependencies")]
    static void Init()
    {
        UnityEditor.EditorWindow window = GetWindow(typeof(EditorGUIObjectField));
        window.position = new Rect(0, 0, 250, 80);
        window.Show();
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }

    void OnGUI()
    {
        obj = (GameObject)EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject));
        if (obj) {
            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies")) {
                Selection.objects = EditorUtility.CollectDependencies(new GameObject[] {obj});
            }

            else {
                EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
            }
        }
    }
}
```
