colors | 要使用的像素颜色数组。这是展平为 1D 数组的 3D 纹理。 |
miplevel | 将 colors 写入到的 Mip 地图等级。该范围是从 0 到纹理的 Texture.mipmapCount。默认值为 0 。 |
设置整个 Mip 地图等级的像素颜色。
此方法为 CPU 内存中的纹理设置像素数据。Texture.isReadable 必须为 true
,您必须在 SetPixels
后调用 Apply 以将更改的像素上传到 GPU。
Apply 是一个耗时的操作,因为它会复制纹理中的所有像素,即使您只更改了一些像素,所以在调用它之前尽可能更改更多像素。colors
必须包含从纹理的正面开始的逐个切片的像素。每个切片都必须包含逐行排列的像素,从纹理的左下角开始。数组的大小必须为 Mip 地图等级的宽度 × 高度 × 深度。
与多次调用 SetPixel 相比,通常一次对 SetPixels
的调用会更快,特别是对于大型纹理。SetPixels
可能比某些其他纹理方法更慢,因为它将 Color 结构转换为纹理使用的格式。要更快地设置像素数据,请使用 SetPixelData。
您可以将 SetPixels
与以下 纹理格式 一起使用
对于所有其他格式,SetPixels
操作都会失败。当 SetPixels
操作失败时,Unity 将抛出一个异常。
其他资源:GetPixels、SetPixels32、SetPixelData、Apply、mipmapCount。