#unity/日常积累 # [Texture2D](https://docs.unity3d.com/cn/2019.3/ScriptReference/Texture2D.html).GetPixels32 public Color32[] GetPixels32 (int miplevel); ## 描述 获取像素颜色块(Color32 格式)。 该函数返回纹理的整个 Mip 级别的 像素颜色数组。 返回的数组是一个平展 2D 数组,其中像素是从左到右、 从下到上排列(即,逐行排列)的。数组大小为所用 Mip 级别的宽度乘以高度。 默认 Mip 级别为零(基础纹理),在这种情况下,其大小只是该纹理的大小。 在一般情况下,Mip 级别的大小为 `mipWidth=max(1,width>>miplevel)`, 高度也是如此。 该纹理必须在 [texture import settings](https://docs.unity3d.com/cn/2019.3/Manual/Textures.html) 中设置 [read/write enabled](https://docs.unity3d.com/cn/2019.3/ScriptReference/TextureImporter-isReadable.html) 标志,否则此函数将失败。在使用 Crunch 纹理压缩的纹理上,GetPixels32 不可用。 使用 `GetPixels32` 可比反复调用 [GetPixel](https://docs.unity3d.com/cn/2019.3/ScriptReference/Texture2D.GetPixel.html) 更快,尤其是 对于较大纹理而言。此外,`GetPixels32` 还可访问单独的多级渐进纹理级别。 ``` cs using UnityEngine; public class Example : MonoBehaviour { // Rotate an image 180 degrees by reversing the order // of the pixels. // Source texture. Texture2D sourceTex; void Start() { // Get the pixel block and reverse the array to // rotate the image. var pix = sourceTex.GetPixels32(); System.Array.Reverse(pix); // Copy the reversed image data to a new texture. var destTex = new Texture2D(sourceTex.width, sourceTex.height); destTex.SetPixels32(pix); destTex.Apply(); // Set the current object's texture to show the // rotated image. GetComponent().material.mainTexture = destTex; } } ```