Texture2DArray.SetPixelData
Declaration
public void SetPixelData(T[] data, int mipLevel, int element, int sourceDataStartIndex = 0);public void SetPixelData(NativeArray<T> data, int mipLevel, int element, int sourceDataStartIndex = 0);Параметры
| Параметр | Описание |
|---|---|
| данные | Массив данных для использования. |
| mipLevel | Уровень mipmap для записи. Диапазон 0 через текстуру Texture.mipmapCount. Значение по умолчанию 0. |
| элемент | Сегмент массива, в который копировать пиксели. |
| sourceDataStartIndex | Индекс в исходном массиве, с которого начнется копирование. Значение по умолчанию — 0. |
Описание
Устанавливает необработанные данные всего уровня mipmap непосредственно в память CPU.
Этот метод устанавливает пиксельные данные для текстуры в памяти CPU. Texture.isReadable должно быть true, и вы должны вызвать Apply после SetPixelData для загрузки измененных пикселей в GPU.SetPixelData полезно, если вы хотите загрузить сжатые или другие данные в нецветном текстурном формате в текстуру.
Размер data массив должен быть шириной × высотой уровня mipmap, а расположение данных должно соответствовать формату текстуры, в противном случае SetPixelData Вы можете использовать byte для T если вы не хотите определять собственную структуру, соответствующую формату текстуры.
Unity вызывает исключение, когда SetPixelData не удается.
Дополнительные ресурсы: SetPixels, GetPixelData, Apply.
using UnityEngine;
public class ExampleScript : MonoBehaviour { public Texture2DArray texture; public void Start() { texture = new Texture2DArray(2, 2, 3, TextureFormat.RGB24, true); var data = new byte[] { // mip 0: 2x2 size 255, 0, 0, // red 0, 255, 0, // green 0, 0, 255, // blue 255, 235, 4, // yellow // mip 1: 1x1 size 0, 255, 255 // cyan }; texture.SetPixelData(data, 0, 0, 0); // mip 0 texture.SetPixelData(data, 1, 0, 12); // mip 1 texture.filterMode = FilterMode.Point; texture.Apply(updateMipmaps: false); } }