Объявление
public NativeArrayПараметры
mipLevel | MIP-уровень для ссылки. |
element | Срез массива для ссылки. |
Возвращает
NativeArray
Описание
Получает необработанные данные из текстуры для чтения или записи.
Эта функция возвращает прямое «представление» данных пикселей текстуры в виде массива Unity.Collections.NativeArray.
Срез данных будет возвращен в соответствии с запрошенным уровнем MIP и элементом массива. Например, для текстуры размером 16x16 в формате RGBA32 получение уровня mip=1 (размер 8x8) приведет к массиву размером 256 байт или массиву из 64 элементов, если Color32 используется как тип (это также относится к любому элементу массива).
Вы можете читать и записывать в возвращаемый массив. Если вы записываете в нее, вы должны вызвать метод Apply, чтобы загрузить текстуру в GPU. Если массив, возвращенный GetPixelData, использовался для заполнения мип-карты уровня, отличного от 0, то перед вызовом метода Apply для updateMipmaps необходимо установить значение false.
GetPixelData не выделяет память; возвращенный NativeArray напрямую указывает на буфер данных системной памяти текстур.
Рекомендуется немедленно использовать или изменить данные, полученные этим методом, и не сохранять возвращенный массив для последующего использования, так как возвращенный массив может стать недействительным (т. е. он больше не указывает на допустимую память), если Текстура изменена или обновлено после того, как вы вызвали этот метод.
GetPixelData
выдает исключение в случае сбоя.
Смотрите так же: Apply, SetPixels, SetPixels32, GetPixelData.
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
public void Start()
{
var m_Texture2DArray = new Texture2DArray(16, 16, 3, TextureFormat.RGBA32, true);
var mip0Element1 = m_Texture2DArray.GetPixelData<Color32>(1, 1);
// pixels in mip = 1 from the second array element are filled with white color
for (int i = 0; i < mip0Element1.Length; i++)
{
mip0Element1[i] = new Color32(255, 255, 255, 255);
}
m_Texture2DArray.Apply(false);
}
}