# RemoveUnusedOverrides(GameObject[], InteractionMode)

> This method identifies and removes all unused overrides from a list of Prefab Instance roots. See the manual Unused Overides for more detail.

## Definition

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

```csharp
public static void RemoveUnusedOverrides(GameObject[] prefabInstances, InteractionMode action)
```

### Parameters

**** (\[GameObject\[]]\(/engine/6000.7/script-reference/unityengine/gameobject)): List of Prefab instances to remove unused overrides from.**** (\[InteractionMode]\(/engine/6000.7/script-reference/unityeditor/interactionmode)): UserAction will record undo and write result to Editor log file.

### Examples

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

public class RemoveUnusedOverridesExample
{
    // Creates a new menu item 'Examples > Remove Unused Overrides Example' in the main menu.
    [MenuItem("Examples/Remove Unused Overrides Example")]
    static void RemoveUnusedOverrides()
    {
        var exampleGameObject = new GameObject("Example", typeof(BoxCollider));

        // Create folder Prefabs and set the path as within the Prefabs folder,
        // and name it as the GameObject's name with the .Prefab format
        if (!Directory.Exists("Assets/Prefabs"))
            AssetDatabase.CreateFolder("Assets", "Prefabs");
        string localPath = "AssetsPrefabs" + exampleGameObject.name + ".prefab";

        // Make sure the file name is unique, in case an existing Prefab has the same name.
        localPath = AssetDatabase.GenerateUniqueAssetPath(localPath);

        // Create the new Prefab and log whether Prefab was saved successfully.
        var prefabAsset = PrefabUtility.SaveAsPrefabAssetAndConnect(exampleGameObject, localPath, InteractionMode.UserAction, out bool prefabSuccess);

        //Set a value on the example script and record it
        exampleGameObject.GetComponent<BoxCollider>().center = new Vector3(2.0f, 2.0f, 2.0f);
        PrefabUtility.RecordPrefabInstancePropertyModifications(exampleGameObject.GetComponent<BoxCollider>());

        //Remove the component from the prefab asset. We now have an unused override.
        PrefabUtility.ApplyRemovedComponent(exampleGameObject, prefabAsset.GetComponent(typeof(BoxCollider)), InteractionMode.UserAction);

        //Remove the unused override that was created earlier
        PrefabUtility.RemoveUnusedOverrides(new [] { exampleGameObject }, InteractionMode.UserAction);
    }
}
```
