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

Texture2DArray.SetPixels

提出建议

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每项更改建议,并在适用的时候进行更新。

关闭

提交失败

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

关闭

取消

切换到手册

声明

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

声明

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

参数

colors 要使用的像素颜色数组。这是一个展平为 1D 数组的 2D 图像。
arrayElement 要写入的数组切片。
miplevel 要将 colors 写入的 mipmap 层级。范围从 0 到纹理的 Texture.mipmapCount。默认值为 0

描述

设置切片的一个完整 mipmap 层级的像素颜色。

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

Apply 是一项代价较高的操作,因为它会复制纹理中的所有像素,即使您只更改了部分像素,因此在调用该方法之前应尽可能更改更多的像素。

colors 必须包含按行排列的像素,从纹理的左下角开始。数组的大小必须等于 mipmap 层级的宽度 × 高度。

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