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

AssetDatabase.AllowAutoRefresh

Declaration

public static void AllowAutoRefresh();

Описание

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

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

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

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

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

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

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

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

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

Ваш код никогда не должен приводить счётчик к отрицательному значению. Этот метод срабатывает утверждением, когда внутренний счётчик уходит ниже нуля, но всё равно продолжает его уменьшать. Учитывайте это: если вы не вызовете метод столько же раз, сколько Disallow, автообновление работать не будет.

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