EditorUtility.SetDirty 设置已改变
Description描述
Marks target object as dirty.
标记目标物体已改变。
Unity internally uses the dirty flag to find out when assets have changed and need to be saved to disk.
当资源已改变并需要保存到磁盘,Unity内部使用dirty标识来查找。
E.g. if you modify a prefab'sMonoBehaviourorScriptableObjectvariables, you must tell Unity that the value has changed. Unity builtin components internally call SetDirty whenever a property changes.MonoBehaviourorScriptableObjectdon't do this automatically so if you want your value to be saved you need to call SetDirty.
例如,如果修改一个prefab的MonoBehaviour或ScriptableObject变量,必须告诉Unity该值已经改变。每当一个属性发生变化,Unity内置组件在内部调用setDirty。MonoBehaviour或ScriptableObject不自动做这个,因此如果你想值被保存,必须调用SetDirty。
==========
所以必须先设置dirty,再save
EditorUtility.SetDirty(targ);
AssetDatabase.SaveAssets();
网友评论