Объявление
public Color32[] GetPixels32(CubemapFace face, int arrayElement, int miplevel);public Color32[] GetPixels32(CubemapFace face, int arrayElement);
Параметры
face | Грань кубической карты, из которой считываются пиксельные данные. |
arrayElement | Элемент массива ("срез"), из которого считываются данные пикселей. |
miplevel | MIP-уровень, с которого считываются пиксельные данные. По умолчанию используется 0 . |
Возвращает
Color32[] Массив, содержащий копию запрошенных цветов пикселей, представленных структурами Color32 более низкой точности.
Описание
Получает копию данных о цвете пикселя для данной грани данного фрагмента на заданном уровне MIP. Цвета представлены структурами Color32 более низкой точности.
Один вызов этой функции обычно быстрее, чем несколько вызовов GetPixel, особенно для больших текстур. Эта функция работает быстрее, чем GetPixels, и использует меньше памяти, поскольку не выполняет преобразования целых чисел в числа с плавающей запятой. Для прямого просмотра данных пикселей используйте GetPixelData.
Для успешного выполнения этой функции Texture.isReadable должно быть true
.
Возвращенный массив представляет собой сглаженный двумерный массив, в котором данные отображаются построчно: пиксели располагаются слева направо и снизу вверх. Размеры массива составляют width * height
мип-уровня. Если эта функция не работает, Unity выдает исключение.
using UnityEngine;
public class CubemapArrayExample : MonoBehaviour
{
public CubemapArray source;
public CubemapArray destination;
void Start()
{
// Get a copy of the color data from the source CubemapArray, in lower-precision int format.
// Each element in the array represents the color data for an individual pixel.
CubemapFace sourceFace = CubemapFace.PositiveX;
int sourceSlice = 0;
int sourceMipLevel = 0;
Color32[] pixels = source.GetPixels32(sourceFace, sourceSlice, sourceMipLevel);
// If required, manipulate the pixels before applying them to the destination texture.
// This example code reverses the array, which rotates the image 180 degrees.
System.Array.Reverse(pixels, 0, pixels.Length);
// Set the pixels of the destination CubemapArray.
CubemapFace destinationFace = CubemapFace.PositiveX;
int destinationSlice = 0;
int destinationMipLevel = 0;
destination.SetPixels32(pixels, destinationFace, destinationSlice, destinationMipLevel);
// Apply changes to the destination CubemapArray, which uploads its data to the GPU.
destination.Apply();
}
}
Смотрите так же: GetPixels, GetPixelData, SetPixels32, Graphics.CopyTexture.