Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

AssetDatabase.DisallowAutoRefresh

Declaration

public static void DisallowAutoRefresh();

Описание

Увеличивает внутренний счётчик, по которому Unity решает, разрешать ли автоматическое обновление AssetDatabase.

Unity использует этот метод и соответствующий AssetDatabase.AllowAutoRefresh вместе внутренне, чтобы предотвратить автоматическое обновление во время некоторых операций. Например, интеграция управления версиями Unity использует его для предотвращения автоматического обновления во время получения новых наборов изменений.

Этот метод полезен, если вы создаете свои собственные инструменты Редактора и хотите предотвратить автоматическое обновление Assets во время своих собственных операций (например, если вы создаете собственную интеграцию с системой управления версиями).

Этот метод не просто отключает функцию автоматического обновления. Вместо этого он увеличивает счетчик и разрешает автоматическое обновление только тогда, когда счетчик возвращается к нулю. Поэтому каждый раз, когда вы вызываете DisallowAutoRefresh, вы должны убедиться, что вы также делаете соответствующий вызов AllowAutoRefresh. Например:

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

Этот внутренний счётчик нужен для того, чтобы при нескольких вложенных парах «отключить/включить» внутренние пары не включили автообновление раньше времени. Каждая пара увеличивает и уменьшает счётчик на единицу, и при корректной вложенности последний внешний вызов AllowAutoRefresh обнуляет счётчик.

Важные примечания:

Этот метод не влияет на поведение AssetDatabase.Refresh. При вызове AssetDatabase.Refresh база данных ассетов всегда выполняет обновление — независимо от этого метода и его внутреннего счётчика.

Этот метод не связан с настройкой Auto Refresh в окне Preferences: она не изменяет данный внутренний счётчик. Если настройка Auto Refresh отключена, вызовы Allow и Disallow всё равно меняют внутренний счётчик, но редактор не выполняет автоматическое обновление независимо от того, равен счётчик нулю или нет.

Дополнительные ресурсы: AssetDatabase.AllowAutoRefresh.