Version: 2018.1 (switch to 2018.2b or 2017.4)
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.


Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.



public static method FindValidUploadPrefabInstanceRoot(target: GameObject): GameObject;
public static GameObject FindValidUploadPrefabInstanceRoot(GameObject target);


targetGameObject to process.


GameObject Return the root game object of the prefab asset.


Returns root game object of the prefab instance if that root prefab instance is a parent of the prefab.

A prefab internally consists of a Prefab object and the list of objects used for the prefab. The Prefab object has a pointer to the root game object and if the prefab is an instance then it also contains a pointer to the asset it was created from and a list of modifications done to the instance.

This works in the same way as PrefabUtility.FindRootGameObjectWithSameParentPrefab but it will return the root game object of the prefab asset. This is useful if you have a disconnected prefab instance object and you want to know the root game object of the prefab asset which it used to be connected to.

Did you find this page useful? Please give it a rating: