Version: 2021.3
public void SetPixelData (T[] data, int mipLevel, CubemapFace face, int element, int sourceDataStartIndex= 0);
public void SetPixelData (NativeArray<T> data, int mipLevel, CubemapFace face, int element, int sourceDataStartIndex= 0);

参数

mipLevel 要填充的 Mip 级别。
element 要向其中复制像素的数组切片。
sourceDataStartIndex 要从其开始复制的源数组索引(默认值为 0)。
face 要填充的立方体贴图面。
data 用于初始化纹理像素的数据数组。

描述

用原始预格式化数据设置像素值。

此函数使用原始数据填充一个 Mip 级别、一个立方体贴图和一个数组元素的纹理像素内存。如果要将压缩或其他非颜色纹理格式数据加载到纹理中,此函数很有用。

传递的数据应具有所需的大小,以便根据其宽度、高度和数据格式填充整个纹理 Mip 级别。否则,Unity 将抛出异常。

设置图像数据后,调用 Apply 会将其实际上传到 GPU。

SetPixelData throws an exception when it fails.

See Also: SetPixels, GetPixelData, ::Apply.

using UnityEngine;

public class ExampleScript : MonoBehaviour { public CubemapArray texture; public void Start() { texture = new CubemapArray(2, 2, TextureFormat.RGB24, true); var data = new byte[] { // mip 0: 2x2 size 255, 0, 0, // red 0, 255, 0, // green 0, 0, 255, // blue 255, 255, 255, // white // mip 1: 1x1 size 255, 255, 0 // yellow }; texture.SetPixelData(data, 0, CubemapFace.PositiveX, 0, 0); texture.SetPixelData(data, 1, CubemapFace.PositiveX, 0, 12); texture.Apply(updateMipmaps: false); } }