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
与以下 纹理格式 一起使用:
对于所有其他格式,SetPixels
失败。当 SetPixels
失败时,Unity 抛出一个异常。
附加资源:GetPixels,SetPixels32,SetPixelData,Apply,mipmapCount。