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

CubemapArray.GetPixels

建议更改

成功!

感谢您帮助我们提高 Unity 文档质量。虽然我们无法接受所有提交,但我们确实从用户处阅读每个建议的更改,并将适用的更新。错误!

关闭

提交失败

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

关闭

取消

切换到手册

声明

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

声明

public Color[] GetPixels(CubemapFace face, int arrayElement);

参数

face 从中读取的 CubemapFace
miplevel 要获取的mipmap 的级别。范围是 0 到纹理的 Texture.mipmapCount。默认值为 0
arrayElement 从中读取像素数据的数组切片。

返回

Color[] 一个包含像素颜色的数组。

说明

获取切片的面的mipmap 级别像素颜色数据作为 Color 结构。

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

数组以每行一个像素包含像素,从面状纹理的左下角开始。数组的大小是mipmap 级别的宽度 × 高度。

每个像素是一个 Color 结构。 GetPixels 可能比其他一些纹理方法慢,因为它会将纹理使用的格式转换为 ColorGetPixels 还需要解压缩压缩纹理,并使用内存来存储解压缩的区域。若要更快地获取像素数据,请改用 GetPixelData

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

对于使用 Crunch 纹理压缩的纹理,无法使用 GetPixel。请改用 GetPixels32

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 high-precision float format. // Each element in the array represents the color data for an individual pixel. CubemapFace sourceFace = CubemapFace.PositiveX; int sourceSlice = 0; int sourceMipLevel = 0; Color[] pixels = source.GetPixels(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.SetPixels(pixels, destinationFace, destinationSlice, destinationMipLevel);

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

其他资源:SetPixelsGetPixelDatamipmapCount