This version of Unity is unsupported.

Texture3D.GetPixels

Switch to Manual

Declaration

public Color[] GetPixels(int miplevel);

Parameters

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, represented by Color structs.

Description

Retrieves a copy of the the pixel color data for a given mip level. 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 Texture3DExample : MonoBehaviour { public Texture3D source; public Texture3D destination;

void Start() { // Get a copy of the color data from the source Texture3D, in high-precision float format. // Each element in the array represents the color data for an individual pixel. int sourceMipLevel = 0; Color[] pixels = source.GetPixels(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 Texture3D. int destinationMipLevel = 0; destination.SetPixels(pixels, destinationMipLevel);

// Apply changes to the destination Texture3D, which uploads its data to the GPU. destination.Apply(); } }