componentOrGameObject | The object to find the corresponding object from. |
TObject The corresponding object or null.
Retrieves the corresponding asset object of source
, or null if it can't be found.
Use this method to get a Prefab Asset object the source
was instantiated from.
For example, in the diagram shown below, prefab asset "A" contains a child nested prefab "B", which contains a child nested prefab "C".
When GameObject C (the instance of nested prefab C in the hierarchy) is passed in as the source to this method, this method returns the object "C (Nested Prefab)" from the asset "Prefab A".
The example script below adds a menu item to the editor, which launches a simple wizard that allows you to test the results of this method.
using UnityEditor; using UnityEngine; public class AssetSourceTestWizard : ScriptableWizard { public GameObject instance;
[MenuItem("Test/Asset Source Test Wizard")] static void CreateWizard() { ScriptableWizard.DisplayWizard<AssetSourceTestWizard>("Asset Source Test Wizard", "Do Test"); }
void OnWizardCreate() { var o1 = PrefabUtility.GetCorrespondingObjectFromSource(instance); Debug.Log("Corresponding object from source: " + o1.name + " from: " + AssetDatabase.GetAssetPath(o1)); } }