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

CubemapArray.SetPixels

建议更改

成功!

感谢你帮助我们改进 Unity 文档的质量。虽然我们无法接纳所有提交,但我们会阅读用户提供的每条建议,并在适用时更新文档。

关闭

提交失败

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

关闭

取消

切换到手册

声明

public void SetPixels(Color[] colors, CubemapFace face, int arrayElement, int miplevel);

声明

public void SetPixels(Color[] colors, CubemapFace face, int arrayElement);

参数

colors 要使用的像素颜色的数组。这是平化为一维阵列的二维图像。
miplevel 要向其写入 colors 的渐远纹理等级。范围从 0 到纹理的 Texture.mipmapCount。默认值为 0
face 要向其写入 colorsCubemapFace
arrayElement 要向其写入 colors 的数组切片。

说明

设置切片某个面的整个渐远纹理等级的像素颜色。

此方法为 CPU 内存中的纹理设置像素数据。 Texture.isReadable 必须为 true,并且必须在调用 SetPixels 之后调用 Apply,才能将更改的像素上传到 GPU。

Apply 是一个耗时的操作,因为它会复制纹理中的所有像素,即使你只更改了一些像素,因此在你调用该操作之前尽量更改尽可能多的像素。

colors 必须按行包含每行像素,从面纹理的左下角开始。数组的大小必须是渐远纹理等级的宽 × 高。

SetPixels 可能比某些其他纹理方法慢,因为它会将 Color 结构转换成纹理使用的格式。若要更快地设置像素数据,应改用 SetPixelData

可以在下列 纹理格式 中使用 SetPixels

  • Alpha8
  • ARGB32
  • ARGB4444
  • BGRA32
  • R16
  • R16_SIGNED
  • R8
  • R8_SIGNED
  • RFloat
  • RG16
  • RG16_SIGNED
  • RG32
  • RG32_SIGNED
  • RGB24
  • RGB24_SIGNED
  • RGB48
  • RGB48_SIGNED
  • RGB565
  • RGB9e5Float
  • RGBA32
  • RGBA32_SIGNED
  • RGBA4444
  • RGBA64
  • RGBA64_SIGNED
  • RGBAFloat
  • RGBAHalf
  • RGFloat
  • RGHalf
  • RHalf

对于所有其他格式,SetPixels 会失败。如果 SetPixels 失败,Unity 将抛出异常。

其他资源: GetPixelsSetPixels32SetPixelDataApplymipmapCount