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

CubemapArray.GetPixels32

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户建议的每一项更改,并根据需要进行更新。

关闭

提交失败

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

关闭

取消

切换到手册

声明

public Color32[] GetPixels32(CubemapFace face, int arrayElement, int miplevel);

声明

public Color32[] GetPixels32(CubemapFace face, int arrayElement);

参数

face 读取像素数据的CubemapFace
arrayElement 读取像素数据的数组切片。
miplevel 获取的渐远纹理级别。范围是 0 至纹理的Texture.mipmapCount。默认值为 0

返回值

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

说明

获取切片的某个面的渐远纹理级别的像素颜色数据作为Color32结构。

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

数组按行存储像素,从面纹理的左下角开始。数组大小是渐远纹理级别的宽 × 高。

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

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

using UnityEngine;

public class CubemapArrayExample : MonoBehaviour { public CubemapArray source; public CubemapArray destination;

void Start() { // Get a copy of the color data from the source CubemapArray, in lower-precision int format. // Each element in the array represents the color data for an individual pixel. CubemapFace sourceFace = CubemapFace.PositiveX; int sourceSlice = 0; int sourceMipLevel = 0; Color32[] pixels = source.GetPixels32(sourceFace, sourceSlice, 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 CubemapArray. CubemapFace destinationFace = CubemapFace.PositiveX; int destinationSlice = 0; int destinationMipLevel = 0; destination.SetPixels32(pixels, destinationFace, destinationSlice, destinationMipLevel);

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