PrefabUtility.GetCorrespondingObjectFromSourceAtPath
Declaration
public static TObject GetCorrespondingObjectFromSourceAtPath(TObject componentOrGameObject, string assetPath);Параметры
| Параметр | Описание |
|---|---|
| componentOrGameObject | Объект, из которого будет найден соответствующий объект. |
| assetPath | Путь ассета Префаб Ассета, из которого будет получен соответствующий объект. |
Возвращаемое значение
TObject Соответствующий объект или null.
Описание
Получает соответствующий объект заданного объекта из заданного пути Префаб Asset.
Используйте этот метод для поиска соответствующего ассета, из которого был инстанцирован source, если, но только если он находится в ассете префаб на указанном пути.
Если у вас нет пути для передачи, вы можете использовать GetCorrespondingObjectFromSource вместо этого.
Этот метод возвращает null, если у данного объекта нет соответствующего объекта в ассете префаб на указанном пути.
Например, на следующем изображении префаб ассет A содержит вложенный дочерний объект префаб B, который содержит вложенный дочерний объект префаб C.
На изображении показаны вложенные ассеты префаб, где B и C вложены в A, а C вложен в B, и как эта структура переносится на их вложенные экземпляры в окне Hierarchy.
В этом примере, если вы вызываете GetCorrespondingObjectFromSourceAtPath с экземпляром GameObject C в качестве параметра componentOrGameObject и Assets/A.prefab в качестве параметра assetPath, этот метод возвращает вложенный объект префаб C из ассета префаб A.
В следующем примере в Редактор добавляется пункт меню, который запускает простой мастер, позволяющий проверить результаты этого метода.
using UnityEditor; using UnityEngine; public class AssetSourceTestWizard : ScriptableWizard { public GameObject instance; public string path;
[MenuItem("Test/Asset Source Test Wizard")] static void CreateWizard() { ScriptableWizard.DisplayWizard<AssetSourceTestWizard>("Asset Source Test Wizard", "Do Test"); }
void OnWizardCreate() { var o1 = PrefabUtility.GetCorrespondingObjectFromSourceAtPath(instance, path); Debug.Log("Corresponding object from source: " + o1.name); } }
См. также: GetCorrespondingObjectFromSource, GetOriginalSourceRootWhereGameObjectIsAdded, GetCorrespondingObjectFromOriginalSource.