Объявление
public void SetPixelData(T[] data, int mipLevel, int element, int sourceDataStartIndex = 0);public void SetPixelData(NativeArray
Параметры
data | Массив данных для инициализации пикселей текстуры. |
mipLevel | Мип уровень для заполнения. |
element | Срез массива, в который копируются пиксели. |
sourceDataStartIndex | Индекс в исходном массиве, с которого начинается копирование (по умолчанию 0). |
Описание
Установите значения пикселей из необработанных предварительно отформатированных данных.
Эта функция заполняет память пикселей текстуры одного уровня MIP и одного элемента массива необработанными данными. Это полезно, если вы хотите загрузить в текстуру сжатые или другие данные формата текстуры, не относящиеся к цвету.
Вы должны сделать передаваемые данные требуемого размера, чтобы заполнить весь уровень mip текстуры в соответствии с ее шириной, высотой и форматом данных. В противном случае Unity выдает исключение.
Вызовите Apply после установки данных изображения, чтобы загрузить их в GPU.
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);
}
}