# CollectDependencies(Object[])

> Calculates and returns a list of all assets the assets listed in roots depend on.

## Definition

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

```csharp
public static Object[] CollectDependencies(Object[] roots)
```

### Parameters

**** (\[Object\[]]\(/engine/6000.0/script-reference/unityengine/object)):&#x20;

### Returns

| Type                                                                | Description |
| ------------------------------------------------------------------- | ----------- |
| [Object\[\]](/engine/6000.0/script-reference/unityengine/object.md) |             |

### Remarks

![EditorUtilityCollectDependencies (CollectDependencies(Object\[\]))](/api/media?file=/engine/6000.0/media/images/EditorUtilityCollectDependencies.png)

*Editor window that shows the next example.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class CollectDependenciesExample : EditorWindow
{
    static GameObject obj = null;


    [MenuItem("Example/Collect Dependencies")]
    static void Init()
    {
        // Get existing open window or if none, make a new one:
        CollectDependenciesExample window = (CollectDependenciesExample)EditorWindow.GetWindow(typeof(CollectDependenciesExample));
        window.Show();
    }

    void OnGUI()
    {
        obj = EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20), "Find Dependency", obj, typeof(GameObject)) as GameObject;

        if (obj)
        {
            Object[] roots = new Object[] { obj };

            if (GUI.Button(new Rect(3, 25, position.width - 6, 20), "Check Dependencies"))
                Selection.objects = EditorUtility.CollectDependencies(roots);
        }
        else
            EditorGUI.LabelField(new Rect(3, 25, position.width - 6, 20), "Missing:", "Select an object first");
    }

    void OnInspectorUpdate()
    {
        Repaint();
    }
}
```
