将资源数据库置于一个状态,该状态暂时阻止自动导入,允许您将多个资源导入组合成一个更大的导入。
此类允许您暂停资源数据库对新资源或修改资源的自动导入。如果您想通过脚本执行对资源进行多次更改的操作,而无需资源数据库在单独的导入过程中导入每个更改,则此方法很有用。
相反,您可以暂停导入,进行多次更改,然后恢复导入,这意味着 Unity 将只对您在暂停导入时所做的所有更改执行一次输入过程。
此类是 AssetDatabase.StartAssetEditing 和 AssetDatabase.StopAssetEditing 方法的替代方法,它们具有相同的目的。
此AssetEditingScope
类旨在用于 using
语句中,该语句会自动处理类,如以下示例所示
using UnityEngine; using UnityEditor;
public class AssetEditingScopeExample : MonoBehaviour { [MenuItem("APIExamples/AssetEditingScope")] static void CallAssetDatabaseAPIsBetweenAssetEditingScope() { // Place the Asset Database in a state where // importing is suspended for most APIs using (var editingScope = new AssetDatabase.AssetEditingScope()) { // Modify the assets however we like AssetDatabase.CopyAsset("Assets/CopyAsset.txt", "Assets/Text/CopyAsset.txt"); AssetDatabase.MoveAsset("Assets/MoveAsset.txt", "Assets/Text/MoveAsset.txt"); } // Assets will now be imported again, as editingScope has been disposed. } }
如果您在除 using
语句之外的其他上下文中使用它,您必须确保调用它的 Dispose()
方法,否则资源数据库将保持暂停状态。
其他资源: AssetDatabase.StartAssetEditing、AssetDatabase.StopAssetEditing.
AssetDatabase.AssetEditingScope | 实例化 AssetEditingScope。等效于调用 AssetDatabase.StartAssetEditing()。 |
Dispose | 处理 AssetEditingScope。等效于调用 AssetDatabase.StopAssetEditing()。 |