mipLevel | 要填充的 Mip 级别。 |
face | 要填充的立方体贴图面。 |
sourceDataStartIndex | 要从其开始复制的源数组索引(默认值为 0)。 |
data | 用于初始化纹理像素的数据数组。 |
用原始预格式化数据设置像素值。
此函数使用原始数据填充一个 Mip 级别和一个立方体贴图面的纹理像素内存。如果要将压缩或其他非颜色纹理格式数据加载到纹理中,此函数很有用。
传递的数据应具有所需的大小,以便根据其宽度、高度和数据格式填充整个纹理 Mip 级别。否则,Unity 将抛出异常。
设置图像数据后,调用 Apply 会将其实际上传到 GPU。
See Also: SetPixels, GetPixelData, ::Apply.
using UnityEngine;
public class ExampleScript : MonoBehaviour { public void Start() { Cubemap cubemap = new Cubemap(2, TextureFormat.RGB24, true);
var byteArray = new byte[] {255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 235, 4, 255, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 255};
cubemap.SetPixelData(byteArray, 0, CubemapFace.PositiveX); cubemap.SetPixelData(byteArray, 1, CubemapFace.PositiveX, 12);
cubemap.SetPixelData(byteArray, 0, CubemapFace.NegativeX, 15); cubemap.SetPixelData(byteArray, 1, CubemapFace.NegativeX, 12);
cubemap.SetPixelData(byteArray, 0, CubemapFace.PositiveY); cubemap.SetPixelData(byteArray, 1, CubemapFace.PositiveY, 12);
cubemap.SetPixelData(byteArray, 0, CubemapFace.NegativeY, 15); cubemap.SetPixelData(byteArray, 1, CubemapFace.NegativeY, 12);
cubemap.SetPixelData(byteArray, 0, CubemapFace.PositiveZ); cubemap.SetPixelData(byteArray, 1, CubemapFace.PositiveZ, 12);
cubemap.SetPixelData(byteArray, 0, CubemapFace.NegativeZ, 15); cubemap.SetPixelData(byteArray, 1, CubemapFace.NegativeZ, 12);
cubemap.Apply(updateMipmaps: false); } }