版本:Unity 6 (6000.0)
语言英语
  • C#

Texture3D.GetPixels32

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交,但我们会仔细阅读用户提出的每项建议的更改,并在需要时进行更新。

关闭

提交失败

由于某种原因,您建议的更改无法提交。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提升 Unity 文档的质量。

关闭

取消

切换到手册

声明

public Color32[] GetPixels32(int miplevel);

声明

public Color32[] GetPixels32();

参数

miplevel 所要获取的贴图等级。范围为 0 到纹理的 纹理.mipmapCount。默认值为 0

返回

Color32[] 包含像素颜色的数组。

描述

Color32 结构获取贴图等级的像素颜色数据。

此方法从 CPU 内存中的纹理获取像素数据。 纹理.isReadable 必须为 true

此数组包含从纹理前端开始按切片排列的像素。每一层都按行排列像素,从纹理的左下角开始。此数组的大小是贴图等级的宽 × 高 × 深度。

每个像素都为 Color32 结构。 GetPixels32 可能比某些其他纹理方法慢,因为它将纹理使用的格式转换为 Color32。要更快速地获取像素数据,请改用 GetPixelData

一次调用 GetPixels32 通常比多次调用 GetPixel 快,尤其对于大型纹理而言。

如果 GetPixels32 失败,Unity 将抛出异常。如果数组包含太多数据,则 GetPixels32 可能失败。对于非常大的纹理,请改用 GetPixelData

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 lower-precision int format. // Each element in the array represents the color data for an individual pixel. int sourceMipLevel = 0; Color32[] pixels = source.GetPixels32(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.SetPixels32(pixels, destinationMipLevel);

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