Объявление
public void SetPixelData(T[] data, int mipLevel, int sourceDataStartIndex = 0);public void SetPixelData(NativeArray
Параметры
data | Массив данных для инициализации пикселей текстуры. |
mipLevel | Мип уровень для заполнения. |
sourceDataStartIndex | Индекс в исходном массиве, с которого начинается копирование (по умолчанию 0). |
Описание
Установите значения пикселей из необработанных предварительно отформатированных данных.
Эта функция заполняет пиксельную память текстуры одного уровня MIP необработанными данными. Это полезно, если вы хотите загрузить в текстуру сжатые или другие данные формата текстуры, не относящиеся к цвету.
Вы должны сделать передаваемые данные требуемого размера, чтобы заполнить весь mip-уровень текстуры в соответствии с ее шириной, высотой, глубиной и форматом данных. В противном случае Unity выдает исключение.
Обратите внимание, что не все платформы поддерживают сжатые данные 3D-текстур, поэтому, если вы используете сжатые форматы, обратитесь к SystemInfo.supportsCompressed3DTextures.
Вызовите Применить после установки данных изображения, чтобы фактически загрузить их в графический процессор.
SetPixelData
создает исключение в случае сбоя.
Смотрите так же: SetPixels, GetPixelData, Apply, SystemInfo.supportsCompressed3DTextures.
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
public Texture3D texture;
public void Start()
{
texture = new Texture3D(2, 2, 2, TextureFormat.RGB24, true);
var data = new byte[]
{
255, 0, 0, // red
0, 255, 0, // green
0, 0, 255, // blue
255, 235, 4, // yellow
128, 0, 0, // dark red
0, 128, 0, // dark green
0, 0, 128, // dark blue
128, 117, 4, // dark yellow
};
texture.SetPixelData(data, 0);
texture.filterMode = FilterMode.Point;
texture.Apply(updateMipmaps: false);
}
}