Version: 5.6
public static void SetDirty (Object target);

参数

target 标记为“脏”的对象。

描述

target 对象标记为“脏”(仅适用于非场景对象)。

注意:对于 Unity 5.3 之前的版本,这是将对象标记为“脏”的主要方法。从 Unity 5.3 版本开始,我们引入了多场景编辑功能,此函数不再用于修改场景中的对象。您应在更改对象之前改为使用 Undo.RecordObject。这将会将对象的场景标记为“脏”,并在编辑器中提供撤销条目。

如果您在某个场景中修改文件,并且特别不希望针对修改内容添加撤销条目,则应使用 EditorSceneManager.MarkSceneDirty

如果您使用自定义编辑器修改某个组件或资源上的序列化属性,则应使用 [pSerializedObject.FindProperty]]、SerializedObject.UpdateEditorGUILayout.PropertyFieldSerializedObject.ApplyModifiedProperties。这会将修改过的对象标记为“脏”,并为您创建 Undo 状态。

因此,剩下的唯一情形就是,通过其他一些方式修改非场景对象,“并且”特别不希望针对修改内容创建撤销条目时,应使用此函数。这种情况很少见,除非您非常确定要这样做,否则您不应使用此命令!

Unity 在内部使用脏标志找出资源的更改时间以及需要保存到磁盘的时间。