Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

PrefabUtility.LoadPrefabContents

Объявление

public static GameObject LoadPrefabContents(string assetPath);

Параметры

assetPath Путь Prefab Asset для загрузки содержимого.

Возвращает

GameObject Корень загруженного содержимого.

Описание

Загружает Prefab Asset по заданному пути в изолированную сцену и возвращает корневой GameObject Prefab.

Вы можете использовать это, чтобы получить содержимое префаба и изменить его напрямую, вместо того, чтобы проходить через экземпляр префаба. Это полезно для пакетных операций.

После того как вы изменили префаб, вы должны записать его обратно, используя SaveAsPrefabAsset, а затем вызвать UnloadPrefabContents, чтобы освободить префаб и изолированную сцену из памяти.

Смотрите так же: EditPrefabContentsScope.

using UnityEngine; using UnityEditor; public class Example { [MenuItem("Examples/Add BoxCollider to Prefab Asset")] static void AddBoxColliderToPrefab() { // Get the Prefab Asset root GameObject and its asset path. GameObject assetRoot = Selection.activeObject as GameObject; string assetPath = AssetDatabase.GetAssetPath(assetRoot); // Load the contents of the Prefab Asset. GameObject contentsRoot = PrefabUtility.LoadPrefabContents(assetPath); // Modify Prefab contents. contentsRoot.AddComponent<BoxCollider>(); // Save contents back to Prefab Asset and unload contents. PrefabUtility.SaveAsPrefabAsset(contentsRoot, assetPath); PrefabUtility.UnloadPrefabContents(contentsRoot); } [MenuItem("Examples/Add BoxCollider to Prefab Asset", true)] static bool ValidateAddBoxColliderToPrefab() { GameObject go = Selection.activeObject as GameObject; if (go == null) return false; return PrefabUtility.IsPartOfPrefabAsset(go); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3