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