版本: Unity 6 (6000.0)
语言English
  • C#

AssetDatabase.DisallowAutoRefresh

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交,但我们确实会阅读用户提出的每项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static void DisallowAutoRefresh();

描述

递增 Unity 用于确定是否允许自动 AssetDatabase 刷新行为的内部计数器。

Unity 在内部使用此方法和相应的 AssetDatabase.AllowAutoRefresh 来防止在某些操作期间发生自动刷新。例如,Unity 的版本控制集成使用它来防止在获取新更改集时发生自动刷新。

如果您正在构建自己的编辑器工具,并且希望在自己的操作期间防止资源的自动刷新(例如,如果您正在构建与版本控制系统的自定义集成),则此方法很有用。

此方法不会简单地禁用自动刷新功能。相反,它会递增一个计数器,并且仅在计数器返回零时才允许自动刷新。因此,每次调用 DisallowAutoRefresh 时,都必须确保也对 AllowAutoRefresh 进行相应的调用。例如

 AssetDatabase.DisallowAutoRefresh();
 // your code here, performed while auto-refresh is not allowed
 AssetDatabase.AllowAutoRefresh();

使用此内部计数器是为了防止代码执行多个嵌套的“禁用”和“启用”对时,内部对意外过早地重新启用自动刷新。相反,每一对都会将计数器递增和递减一次,如果代码正确嵌套,则对 AllowAutoRefresh 的最终外部调用会将计数器设置为零。

重要说明

此方法不影响 AssetDatabase.Refresh 的行为。无论此方法及其内部计数器如何,如果调用 AssetDatabase.Refresh,资源数据库始终执行刷新。

此方法与 Unity 首选项窗口中的自动刷新设置是分开的,后者不会修改此内部计数器。如果 Unity 的自动刷新首选项设置已禁用,则调用 Allow 和 Disallow 仍会修改内部计数器,但是无论内部计数器是否为零,编辑器都不会自动刷新。

其他资源:AssetDatabase.AllowAutoRefresh