Unity 6.3
0 онлайн 8 гостей 3 в системе
Вход

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.