Texture2D.CopyPixels
Declaration
public void CopyPixels(Texture src);public void CopyPixels(Texture src, int srcElement, int srcMip, int dstMip);public void CopyPixels(Texture src, int srcElement, int srcMip, int srcX, int srcY, int srcWidth, int srcHeight, int dstMip, int dstX, int dstY);Параметры
| Параметр | Описание |
|---|---|
| сердце | Исходная текстура. |
| srcElement | Элемент в исходной текстуре, из которого будет копироваться текстура. Например, CubemapFace в кубическом отображении или слой в массиве текстур. Установите значение 0, если src является текстурой 2D. |
| srcMip | Уровень mipmap для копирования. Диапазон 0 через текстуру источника Texture.mipmapCount. Значение по умолчанию 0. |
| dstMip | Уровень mipmap для записи. Диапазон 0 через текстуру Texture.mipmapCount. Значение по умолчанию 0. |
| srcX | Начальная координата x src для копирования. 0 находится слева от текстуры. |
| srcY | Начальная координата y src для копирования. 0 — нижняя часть текстуры. |
| srcWidth | Ширина src для копирования. |
| srcHeight | Высота src для копирования. |
| dstX | Координаты x текстуры для копирования. |
| dstY | Координаты y текстуры для копирования. |
Описание
Копирует пиксельные данные из другой текстуры на CPU.
Этот метод копирует данные пикселей из исходной текстуры в эту текстуру на CPU. Texture.isReadable должно быть true как для текстуры, так и для src, и вы должны вызвать Apply после CopyPixels, чтобы загрузить измененные пиксели в GPU.
Apply является дорогостоящей операцией, потому что она копирует все пиксели в текстуре, даже если вы изменили только некоторые пиксели, так что измените как можно больше пикселей до вызова. Если вам нужно скопировать только пиксели на GPU, Graphics.CopyTexture с параметрами GraphicsTexture, то вместо этого быстрее использовать
Для использования CopyPixels, размер копируемой текстуры должен быть одинаковым в обеих текстурах. Используйте перегрузку на основе региона, чтобы указать меньший регион, чем полный уровень mipmap.
Сжатые форматы текстуры Crunch не поддерживаются в перегрузке на основе элементов. Сжатые форматы текстуры не поддерживаются вообще для перегрузки на основе регионов. Unity возвращает UnityException, если текстура нечитаема, и возвращает ArgumentException, если CopyPixels не работает.
Дополнительные ресурсы: Apply, Graphics.CopyTexture, SetPixels.