Parameter | Description |
---|---|
componentOrGameObject | The object to find the corresponding object from. |
TObject The corresponding object or null.
Retrieves the corresponding source prefab asset object of a given GameObject or component, or null if it can't be found.
Use this method to get the source prefab asset object the GameObject or component 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".
In this example scenario, if you supply the instance of GameObject C as the componentOrGameObject
parameter to GetCorrespondingObjectFromSource
, then the method returns the object C from the asset Prefab A.
For more information about source objects, refer to Introduction to prefabs.
The following example 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)); } }