我应该何时在unity3d中使用AssetDatabase.saveasets()



我刚刚意识到我并不真正了解方法AssetDataBase.SaveAssets()的意义是什么。

例如,当我更改其中的一些时,我使用SetDirty()方法对非场景对象(预录制对象,可脚本对象)。

那么,我的问题是AssetDataBase.SaveAssets()方法的目的是什么?创建目录或什么?

我应该打电话给它吗?

看起来它可以互换方法,但我认为不是。

谢谢!

SetDirty()SaveAssets()是相关的,但是执行不同的功能。

至少您需要调用SetDirty()来指示指定的Unity对象文件(例如预制或ScriptableObject,而不是当前场景一部分的对象)已更改并需要保存。请注意,目录是不是 unity对象。

下次保存项目时,将保存任何SetDirty()的资产。

如果您不想等待,则可以致电AssetDataBase.SaveAssets()立即保存标记的资产。它是一种"冲洗"操作。

  • editorutility.setDirty(UnityEngine.Object Target)
  • AssetDatabase.saveasets()

来自Unity Docs:

描述

写下所有未保存的资产更改。

此函数与editorapplication.saveasets有相同的操作, 除了不允许在 序列化。

因此,当您想为磁盘编写所有未保存的资产更改时,就可以使用它。例如,您有一些脚本,可以改变纹理的设置。在该操作结束时,您调用该方法并将保存更改。

最新更新