最近在跟美术沟通修改Prefab时,在修改完成后即使点击了apply按钮,刚刚的修改也没有写入磁盘,原先的资源依然会是一个SVN的绿勾,只能把Unity关了,才会显示修改。
经过美术人员的描述,浅云认为这是Unity做的一个写缓存机制,可以避免编辑器在编辑过程中频繁的写磁盘(电脑写磁盘会比较慢,写的过程中Unity也会出现卡顿现象等等),这算Unity的一个优化功能,只是在某些时候造成了美术人员的困惑,在需要及时提交资源时,需要关闭Unity才能触发Unity清写缓存,把修改写入磁盘,那能不能在不关Unity的情况下也能让Unity清写缓存,把修改写入磁盘呢?
答案当然是可以的。
美术修改的资源可以统一归为AssetDatabase管理,在这个类中有这样一个函数AssetDatabase.SaveAssets 保存资源

Description
Writes all unsaved asset changes to disk.
将所有未保存的资源更改写入磁盘
具体怎么用呢,看下面

[MenuItem("Assets/把资源修改存盘 %&s")]
public static void MenuSaveAssets() {
    EditorApplication.SaveAssets();
}

只需要创建一个菜单命令就可以,后面的 %&s 是快捷键的意思 Ctrl + Alt + s