Texture2DArray.Apply
Declaration
public void Apply(bool updateMipmaps = true, bool makeNoLongerReadable = false);Параметры
| Параметр | Описание |
|---|---|
| updateMipmaps | Когда значением является true, Unity пересчитывает уровни mipmap, используя уровень mipmap 0 в качестве источника. Значение по умолчанию — true. |
| makeNoLongerReadable | Когда значением является true, Unity удаляет текстуру в памяти CPU после ее загрузки в GPU, и устанавливает isReadable на false. Значение по умолчанию — false. |
Описание
Копирует изменения, сделанные в текстуре CPU в текстуру GPU.
Для большинства типов текстур Unity может хранить копию текстуры как в памяти CPU, так и в памяти GPU.
Копия в памяти CPU необязательна. Если она существует, данные этой копии можно читать и изменять более гибко, чем данные копии в памяти GPU. Однако для визуализации обновлённой текстуры необходимо с помощью Apply скопировать её из CPU в GPU.
Если задать для makeNoLongerReadable значение true, Unity удалит копию текстуры из памяти CPU после её загрузки в GPU. После этого Unity не сможет повторно загрузить текстуру. Даже если для ассета текстуры с сохранёнными на диске данными вызвать Apply, после удаления копии из CPU Unity больше не попытается загрузить данные с диска, поскольку доступные для чтения данные текстуры могли быть изменены. Это важно при использовании в проекте ограничений mipmap, уменьшающих количество загружаемых уровней mipmap (см., например, QualitySettings.globalTextureMipmapLimit). После удаления копии из CPU посредством Apply текстуры времени выполнения и доступные для чтения ассеты текстур перестают следовать настройкам качества. Загруженное разрешение текстур остаётся таким, каким оно было при загрузке в GPU на момент удаления Unity копии из CPU. Если это нежелательно, обеспечьте загрузку текстуры в полном разрешении при импорте или создании либо с помощью Texture2DArray.ignoreMipmapLimit во время выполнения.
Обычно для updateMipmaps задают false только в том случае, если уровни mipmap уже обновлены, например с помощью SetPixels.Apply — ресурсоёмкая операция: она копирует все пиксели текстуры, даже если изменена только их часть. Поэтому перед вызовом измените как можно больше пикселей.
Дополнительные ресурсы: Texture2D.Apply