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

PrefabUtility.RecordPrefabInstancePropertyModifications

Объявление

public static void RecordPrefabInstancePropertyModifications(Object targetObject);

Параметры

targetObject Объект для обработки.

Описание

Вызывает запись изменений, внесенных в экземпляр Prefab.

Обратите внимание, что рекомендуемый способ включения экземпляров префабов для записи изменений — использование SerializedProperty и SerializedObject. Это позволяет экземплярам записывать изменения и автоматически включать изменения в систему отмены.

Вызовите этот метод после внесения изменений в экземпляр префаба, чтобы записать эти изменения в экземпляре. Если этот метод не вызывается, изменения, внесенные в экземпляр, теряются. Обратите внимание, что если вы не используете SerializedProperty/SerializedObject, изменения объекта не записываются в систему отмены независимо от того, вызывается ли этот метод.

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

using UnityEngine; using UnityEditor; using UnityEditor.SceneManagement; // Следующий скрипт Editor удваивает масштаб выбранного GameObject, // записывает изменение свойства и помечает Scene как грязную, чтобы // пользователь может впоследствии сохранить Scene и сохранить изменения. public class Example { [MenuItem("Examples/Double Scale")] static void DoubleScale() { GameObject gameObject = Selection.activeGameObject; Undo.RecordObject(gameObject.transform, "Double scale"); gameObject.transform.localScale *= 2; // Notice that if the call to RecordPrefabInstancePropertyModifications is not present, // all changes to scale will be lost when saving the Scene, and reopening the Scene // would revert the scale back to its previous value. PrefabUtility.RecordPrefabInstancePropertyModifications(gameObject.transform); // Optional step in order to save the Scene changes permanently. //EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); } // Disable the menu item if there is no HierarchyGameObject selection. [MenuItem("Examples/Double Scale", true)] static bool ValidateDoubleScale() { return Selection.activeGameObject != null && !EditorUtility.IsPersistent(Selection.activeGameObject); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3