Version: 2021.3

Texture2D.SetPixelData

切换到手册
public void SetPixelData (T[] data, int mipLevel, int sourceDataStartIndex= 0);
public void SetPixelData (NativeArray<T> data, int mipLevel, int sourceDataStartIndex= 0);

参数

data 用于初始化纹理像素的数据数组。
mipLevel 要填充的 Mip 级别。
sourceDataStartIndex 要从其开始复制的源数组索引(默认值为 0)。

描述

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

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

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

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

SetPixelData throws an exception when it fails.

See Also: SetPixels, LoadRawTextureData, GetPixelData, Apply.

using UnityEngine;

public class ExampleScript : MonoBehaviour { public void Start() { var tex = new Texture2D(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, 235, 4, // yellow // mip 1: 1x1 size 0, 255, 255 // cyan }; tex.SetPixelData(data, 0, 0); // mip 0 tex.SetPixelData(data, 1, 12); // mip 1 tex.filterMode = FilterMode.Point; tex.Apply(updateMipmaps: false);

GetComponent<Renderer>().material.mainTexture = tex; } }