x | 要设置像素的 x 坐标。范围是 0 到 (纹理宽度 - 1)。 |
y | 要设置像素的 y 坐标。范围是 0 到 (纹理高度 - 1)。 |
z | 要设置像素的 z 坐标。范围是 0 到 (纹理深度 - 1)。 |
颜色 | 要设置的颜色。 |
mipLevel | 写入的目标多级纹理级别。范围是 0 到纹理的 Texture.mipmapCount。默认值为 0 。 |
设置坐标 (x
, y
, z
) 的像素颜色。
此方法为 CPU 内存中的纹理设置像素数据。 纹理.isReadable 必须为 true
,并且必须在 SetPixel
之后调用 应用,才能将更改后的像素上传到 GPU。
应用 是一项高成本的操作,因为它会复制纹理中的所有像素,即使你仅更改了其中一些像素,所以在调用它之前尽可能多地更改像素。SetPixel
可能会比其它某些纹理方法更慢,因为它会将 颜色 结构转换为纹理所使用的格式。若要更快速地设置像素数据,请使用 SetPixelData。
左下角为 (0, 0, 0)。如果像素坐标超出了纹理的维度,则 Unity 会根据纹理的 纹理循环模式 对其进行截取或重复。
如果你需要获取一大块像素,那么使用 SetPixels32 可能会更快。
你可以对以下 纹理格式 使用 SetPixel
对于所有其他格式,Unity 会忽略 SetPixel
。
其他资源:SetPixels、SetPixelData、GetPixel、Apply。