EditorUtility.SetDirty
Declaration
public static void SetDirty(Object target);Параметры
| Параметр | Описание |
|---|---|
| Цель | Объект, который будет помечен как грязный. |
Описание
Помечает объект target как грязный.
Вы можете использовать SetDirty когда вы хотите изменить объект без создания записи отмены, но все же убедитесь, что изменение зарегистрировано и не потеряно. Если объект является частью экземпляра Scene, то Scene помечен как загрязненный. Если объект может быть частью экземпляра Префаб, вам дополнительно нужно вызвать PrefabUtility.RecordPrefabInstancePropertyModifications чтобы гарантированно создать переопределение префаба.
Если вы хотите поддерживать отмену, вам не следует вызывать SetDirty а скорее использовать Undo.RecordObject прежде чем вносить изменения в объект, так как это обозначит объект как грязный (или Scene объекта, если он является частью Scene) и предоставит возможность отмены в редакторе. Вы все еще должны также вызвать PrefabUtility.RecordPrefabInstancePropertyModifications если объект может быть частью экземпляра Префаб.
В случае ScriptableObject, вызвать оба SetDirty и Undo.RecordObject, если вы хотите зарегистрировать изменения и поддержку отмены.
При создании редактора UI для манипулирования объектом, например, пользовательского редактора для изменения серийных свойств компонента или ассета, если это возможно, следует использовать SerializedProperty система с использованием SerializedObject.FindProperty, SerializedObject.Update, EditorGUILayout.PropertyField, и SerializedObject.ApplyModifiedProperties. Это автоматически пометит объект как грязный, создаст запись отмены и обеспечит создание переопределений Префаб, если это необходимо.
Дополнительные ресурсы: GetDirtyCount, IsDirty.