Unity 6.3
0 онлайн 58 гостей 3 в системе
Вход

PrefabUtility.GetCorrespondingObjectFromSource

Declaration

public static TObject GetCorrespondingObjectFromSource(TObject componentOrGameObject);

Параметры

Параметр Описание
componentOrGameObject Объект, из которого будет найден соответствующий объект.

Возвращаемое значение

TObject Соответствующий объект или null.

Описание

Получает соответствующий исходный объект ассета префаб заданного GameObject или компонента, или null, если он не может быть найден.

Используйте этот метод для получения исходного объекта ассета префаб, из которого был создан экземпляр GameObject или компонент.

Например, на диаграмме ниже префаб ассет A содержит вложенный дочерний объект префаб B, который содержит вложенный дочерний объект префаб C.



На рисунке показаны вложенные ассеты префаб, где B и C вложены под A, а C вложен под B, и как эта структура переносится на их вложенные экземпляры в окне Hierarchy.

В этом примере, если вы предоставляете экземпляр GameObject C в качестве параметра componentOrGameObject для GetCorrespondingObjectFromSource, то метод возвращает объект C из ассета Префаб A.

Дополнительную информацию об исходных объектах см. в Введение в префабы.

В следующем примере в Редактор добавляется пункт меню, который запускает простой мастер, позволяющий проверить результаты этого метода.

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)); } }

См. также: GetCorrespondingObjectFromSourceAtPath, GetOriginalSourceRootWhereGameObjectIsAdded, GetCorrespondingObjectFromOriginalSource.