arrayElement | The array slice to read pixel data from. |
miplevel | The mip level to read pixel data from. The default is 0 . |
Color[] An array that contains a copy of the requested pixel colors.
Retrieves a copy of the pixel color data for a given mip level of a given slice. The colors are represented by Color structs.
A single call to this function is usually faster than multiple calls to GetPixel, especially for large textures. If a lower-precision representation is acceptable, GetPixels32 is faster and uses less memory because it does not perform integer-to-float conversions.
For this function to succeed, Texture.isReadable must be true
and the data must not be Crunch compressed. GetPixels32 supports Crunch compressed textures.
The returned array is a flattened 2D array, where the data appears row by row: the pixels are laid out left to right, bottom to top. The dimensions of the array are width * height
of the mip level.
using UnityEngine;
public class Texture2DArrayExample : MonoBehaviour { public Texture2DArray source; public Texture2DArray destination;
void Start() { // Get a copy of the color data from the source Texture2DArray, in high-precision float format. // Each element in the array represents the color data for an individual pixel. int sourceSlice = 0; int sourceMipLevel = 0; Color[] pixels = source.GetPixels(sourceSlice, sourceMipLevel);
// If required, manipulate the pixels before applying them to the destination Texture2DArray. // 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 Texture2DArray. int destinationSlice = 0; int destinationMipLevel = 0; destination.SetPixels(pixels, destinationSlice, destinationMipLevel);
// Apply changes to the destination Texture2DArray, which uploads its data to the GPU. destination.Apply(); } }
See Also: GetPixels32, GetPixelData, SetPixels, Graphics.CopyTexture.