递增 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。