Объявление
public static void AllowAutoRefresh();Описание
Уменьшает значение внутреннего счетчика, который Unity использует, чтобы определить, следует ли разрешить автоматическое обновление AssetDatabase.
Unity использует этот метод и соответствующий AssetDatabase.DisallowAutoRefresh вместе внутри, чтобы предотвратить автоматическое обновление во время определенных операций. Например, интеграция с контролем версий Unity использует его для предотвращения автоматического обновления при получении новых наборов изменений.
Этот метод полезен, если вы создаете свои собственные инструменты редактора и хотите предотвратить автоматическое обновление ресурсов во время собственных операций (например, если вы создаете настраиваемую интеграцию с системой контроля версий). Этот метод не просто включает функцию автоматического обновления. Вместо этого он уменьшает счетчик и разрешает автоматическое обновление только тогда, когда счетчик достигает нуля. Он предназначен для повторного включения автоматического обновления после вызова AssetDatabase.DisallowAutoRefresh, который ранее отключил его.
Каждый раз, когда вы вызываете DisallowAutoRefresh, вы должны убедиться, что вы также делаете соответствующий вызов AllowAutoRefresh. Например:
AssetDatabase.DisallowAutoRefresh();
// здесь ваш код, выполняемый, когда автообновление запрещено
AssetDatabase.AllowAutoRefresh();
Причина, по которой Unity использует счетчик, а не простое логическое значение включения/выключения, заключается в том, что если ваш код выполняет несколько вложенных пар "отключить" и "включить", внутренние пары не будут случайно повторно включать автоматическое обновление слишком рано. Вместо этого каждая пара увеличивает и уменьшает счетчик на единицу, и если ваш код правильно вложен, последний внешний вызов AllowAutoRefresh обнуляет счетчик.
Важные примечания:
Этот метод не влияет на поведение AssetDatabase.Refresh. База данных активов всегда выполняет обновление, если вызывается AssetDatabase.Refresh, независимо от этого метода и его внутреннего счетчика.
Этот метод отличается от параметра автоматического обновления в окне настроек Unity, который не изменяет этот внутренний счетчик. Если настройка предпочтения Auto Refresh в Unity отключена, вызовы Allow и Disallow по-прежнему изменяют внутренний счетчик, однако редактор не обновляется автоматически независимо от того, установлен ли внутренний счетчик на ноль или нет.
Ваш код никогда не должен заставлять счетчик опускаться ниже нуля. Этот метод утверждает, когда внутренний счетчик становится ниже нуля, но продолжает уменьшать его. Имейте это в виду, потому что если вы не вызовете этот метод столько же раз, сколько Disallow, это означает, что автоматическое обновление не будет работать.
Смотрите так же: AssetDatabase.DisallowAutoRefresh.