This version of Unity is unsupported.

Texture2DArray.GetPixels

Switch to Manual

Declaration

public Color[] GetPixels(int arrayElement, int miplevel);

Parameters

arrayElement The array slice to read pixel data from.
miplevel The mip level to read pixel data from. The default is 0.

Returns

Color[] An array that contains a copy of the requested pixel colors.

Description

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(); } }