Объявление
public Color[] GetPixels(int arrayElement, int miplevel);public Color[] GetPixels(int arrayElement);
Параметры
arrayElement | Срез массива, из которого считываются данные пикселей. |
miplevel | MIP-уровень, с которого считываются пиксельные данные. По умолчанию используется 0 . |
Возвращает
Color[] Массив, содержащий копию запрошенных цветов пикселей.
Описание
Получает копию данных о цвете пикселя для заданного уровня MIP данного фрагмента. Цвета представлены структурами Color.
Один вызов этой функции обычно быстрее, чем несколько вызовов GetPixel, особенно для больших текстур. Если допустимо представление с более низкой точностью, GetPixels32 работает быстрее и использует меньше памяти, поскольку не выполняет преобразования целых чисел в числа с плавающей запятой. Для прямого просмотра данных пикселей используйте GetPixelData.
Для успешного выполнения этой функции Texture.isReadable должно быть true
, а данные не должны быть сжаты Crunch. GetPixels32 поддерживает сжатые текстуры Crunch.
Возвращенный массив представляет собой сглаженный двумерный массив, в котором данные отображаются построчно: пиксели располагаются слева направо и снизу вверх. Размеры массива составляют width * height
мип-уровня. Если эта функция не работает, Unity выдает исключение.
using UnityEngine;
public class Texture2DArrayExample : MonoBehaviour
{
public Texture2DArray source;
public Texture2DArray destination;
void Start()
{
// Получить копию данных о цвете из источника Texture2DArray в высокоточном плавающем формате.
// Каждый элемент массива представляет данные о цвете отдельного пикселя.
int sourceSlice = 0;
int sourceMipLevel = 0;
Color[] pixels = source.GetPixels(sourceSlice, sourceMipLevel);
// При необходимости поработайте с пикселями, прежде чем применять их к целевому объекту Texture2DArray.
// This example code reverses the array, which rotates the image 180 degrees.
System.Array.Reverse(pixels, 0, pixels.Length);
// Установить пиксели целевого Texture2DArray.
int destinationSlice = 0;
int destinationMipLevel = 0;
destination.SetPixels(pixels, destinationSlice, destinationMipLevel);
// Применить изменения к целевому объекту Texture2DArray, который загружает свои данные в графический процессор.
destination.Apply();
}
}
Смотрите так же: GetPixels32, GetPixelData, SetPixels, Graphics.CopyTexture.