QualitySettings.asyncUploadTimeSlice
Declaration
public static int asyncUploadTimeSlice;Описание
Задает временной промежуток, выделяемый на кадр для асинхронной загрузки данных текстуры и сетки.
Минимальное значение — 1 миллисекунда, максимальное значение — 33 миллисекунды.
Свойство asyncUploadTimeSlice определяет максимальное количество времени, в миллисекундах, которое CPU тратит на асинхронную загрузку текстуры или данных сетки во время каждого кадра. Система асинхронной загрузки Unity использует этот подход, чтобы обеспечить, что операции загрузки не блокируют основной поток и что производительность остается плавной во время выполнения. Если не остается ожидающих операций асинхронной загрузки, Unity перераспределяет это время для других задач CPU, оптимизируя производительность системы.
Это свойство полезно для приоритизации асинхронной загрузки ассетов в сценах с частыми небольшими загрузками текстуры или сетки, сохраняя при этом контроль над использованием CPU. Увеличивая временной отрезок, Unity может загружать больше ассетов в данном кадре. Наоборот, уменьшение этого значения обеспечивает, что загрузка ассетов потребляет меньше CPU времени на кадр, оставляя больше ресурсов для других задач, таких как логика игры или вычисления физики.
using UnityEngine;
public class StartupExampleScript : MonoBehaviour { void Start() { // Set time-slice to 2 ms QualitySettings.asyncUploadTimeSlice = 2; } }
Конвейер асинхронной загрузки позволяет Unity выполнять асинхронную загрузку текстур и данных меши в поток рендеринга. Этот конвейер обеспечивает точное управление использованием памяти и механизмом временной загрузки, гарантируя, что загрузки ассетов не блокируют основной поток и эффективно управляются во время выполнения. Чтобы минимизировать выделение памяти, конвейер повторно использует кольцевой буфер для обработки текстур и данных меши. Размер этого кольцевого буфера можно настроить с помощью свойства asyncUploadBufferSize.
Эта функция полезна для оптимизации сцен с частой динамической загрузкой ассетов или сред с большим объемом памяти, таких как игры с открытым миром или приложения с большими текстурами и мешами. Разрешая асинхронную загрузку данных, Unity обеспечивает плавную производительность и предотвращает внезапные пики в использовании памяти или времени кадров во время интенсивных операций загрузки.
Конвейер асинхронной загрузки минимизирует выделения, за исключением неизбежных выделений, выполняемых самим графическим драйвером. Он предназначен для эффективного повторного использования существующей памяти, снижения фрагментации и накладных расходов.
Дополнительные ресурсы: Загрузка текстур и данных сетки.