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

EditPrefabContentsScope

структура в UnityEditor

Описание

Одноразовая вспомогательная структура для автоматической загрузки содержимого файла Prefab, сохранения содержимого и повторной выгрузки содержимого.

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

Эта структура области охватывает API LoadPrefabContents, SaveAsPrefabAsset и UnloadPrefabContents.

using UnityEditor; using UnityEngine;

public static class PrefabUtilityTesting { [MenuItem("Prefabs/Test_EditPrefabContentsScope")] public static void Test() { // Create a simple test Prefab Asset. Looks like this: // Root // A // B // C var assetPath = "Assets/MyTempPrefab.prefab"; var source = new GameObject("Root"); var childA = new GameObject("A"); var childB = new GameObject("B"); var childC = new GameObject("C"); childA.transform.parent = source.transform; childB.transform.parent = source.transform; childC.transform.parent = source.transform; PrefabUtility.SaveAsPrefabAsset(source, assetPath);

using (var editingScope = new PrefabUtility.EditPrefabContentsScope(assetPath)) { var prefabRoot = editingScope.prefabContentsRoot;

// Removing GameObjects is supported Object.DestroyImmediate(prefabRoot.transform.GetChild(2).gameObject);

// Reordering and reparenting are supported prefabRoot.transform.GetChild(1).parent = prefabRoot.transform.GetChild(0);

// Adding GameObjects is supported var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.transform.parent = prefabRoot.transform; cube.name = "D";

// Adding and removing components are supported prefabRoot.AddComponent<AudioSource>(); }

// Prefab Asset now looks like this: // Root // A // B // D } }

Свойства

assetPath Путь к файлу сборного ресурса.
prefabContentsRoot Корневой GameObject содержимого Prefab.

Конструкторы

PrefabUtility.EditPrefabContentsScope Конструктор
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3