- Home /
2018.3 prefabUtility changed : how to get prefab from an instance in the scene
Hi, I have a level editor working this way : I place prefabs in a visual timeLine in a scene, then record (in a list) each parent prefab of these gameobjects I encounter.
Notice that yet I don't have any neasted/strange prefabs as I'm just upgrading a previous project (2017).
Till 2018.2 I was using with success :
prefabFound = PrefabUtility.FindPrefabRoot((GameObject)PrefabUtility.GetCorrespondingObjectFromSource (gamobFound));
But this is not working anymore. "ArgumentNullException".
I tried the following methods but not anyone is working ("gamobFound" is the GameObject I encounter, and is never null) :
Debug.Log("prefab01: " + ((GameObject)PrefabUtility.GetCorrespondingObjectFromSource(gamobFound)));
Debug.Log("prefab10: " + (GameObject)PrefabUtility.GetPrefabInstanceHandle(gamobFound));
Debug.Log("prefab20: " + (GameObject)PrefabUtility.GetOutermostPrefabInstanceRoot(gamobFound));
Debug.Log("prefab30: " + (GameObject)PrefabUtility.GetNearestPrefabInstanceRoot(gamobFound));
Debug.Log("Prefab40: " + UnityEditor.Experimental.SceneManagement.PrefabStageUtility.GetPrefabStage(gamobFound));
Debug.Log("Prefab50: " + PrefabUtility.GetOutermostPrefabInstanceRoot((GameObject)PrefabUtility.GetPrefabInstanceHandle(gamobFound)));
All these debug returns nothing (except the last one that crashes with ArgumentNullException.
How to replace my method in 2018.3 ? Thank you. Cédric.
Answer by immortalstudio202 · Jul 10, 2019 at 09:53 PM
PrefabStageUtility.GetPrefabStage https://docs.unity3d.com/ScriptReference/Experimental.SceneManagement.PrefabStageUtility.GetPrefabStage.html,PrefabStageUtility.GetPrefabStage https://docs.unity3d.com/ScriptReference/Experimental.SceneManagement.PrefabStage.html
Answer by wang37921 · Jul 09, 2019 at 08:06 AM
PrefabStageUtility.GetPrefabStage https://docs.unity3d.com/ScriptReference/Experimental.SceneManagement.PrefabStageUtility.GetPrefabStage.html
Your answer
Follow this Question
Related Questions
How can I destroy a gameobject that is part of a prefab ? 0 Answers
Is there a way to prevent non-prefab objects from being linked in the inspector? 0 Answers
How do I use PrefabUtility.InstantiatePrefab() ? 0 Answers
PrefabUtility.CreatePrefab fails if prefab already exists 1 Answer
How do I set instance script parameters to a prefab? 1 Answer