# ConvertToPrefabInstance(GameObject, GameObject, ConvertToPrefabInstanceSettings, InteractionMode)

> Convert the plain GameObject to a Prefab instance using the provided Prefab Asset root object.

## Definition

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

```csharp
public static void ConvertToPrefabInstance(GameObject plainGameObject, GameObject prefabAssetRoot, ConvertToPrefabInstanceSettings settings, InteractionMode mode)
```

### Parameters

**** (\[GameObject]\(/engine/6000.6/script-reference/unityengine/gameobject)): The GameObject that will be converted to a Prefab instance.**** (\[GameObject]\(/engine/6000.6/script-reference/unityengine/gameobject)): The Prefab Asset used to create the Prefab instance from.**** (\[ConvertToPrefabInstanceSettings]\(/engine/6000.6/script-reference/unityeditor/converttoprefabinstancesettings)): Settings to control the conversion.**** (\[InteractionMode]\(/engine/6000.6/script-reference/unityeditor/interactionmode)): Using UserAction will record undo and show dialogs if needed.

### Remarks

This function will keep the root GameObject position, rotation and scale in the Scene but merge the contents from the new Prefab Asset. When using [ObjectMatchMode.ByName](/engine/6000.6/script-reference/unityeditor/objectmatchmode/byname.md) object matching is performed. When a match is found references to this object will survive the conversion. Note that matching cannot be performed for GameObjects with duplicate names in each of the input GameObject hierarchies.

Additional Resources: [PrefabUtility.ConvertToPrefabInstances](/engine/6000.6/script-reference/unityeditor/prefabutility/converttoprefabinstances.md), [PrefabUtility.ReplacePrefabAssetOfPrefabInstance](/engine/6000.6/script-reference/unityeditor/prefabutility/replaceprefabassetofprefabinstance.md).
