updateMipmaps | 当设置为 true 时,将重新计算多级渐进纹理级别。 |
makeNoLongerReadable | 当设置为 true 时,将释放纹理的系统内存副本。 |
如果 updateMipmaps
为 /true/,则还将重新计算多级渐进纹理级别,
并且将基本级别作为源。通常会在所有情况下都使用 /true/,
除非您使用 SetPixels 亲自修改了 Mip 级别。
默认情况下,updateMipmaps
设置为 /true/。
如果 makeNoLongerReadable
为 makeNoLongerReadable
,则纹理将被标记为不再可读取,
并且在上传到 GPU 后内存将被释放。
默认情况下,makeNoLongerReadable
被设置为 /false/。
应用是一项成本可能很高的操作,因此您想要在 Apply
调用之间尽可能多地
更改像素。
或者,如果您不需要访问 CPU 上的像素,您可以使用 Graphics.CopyTexture
来快速复制 GPU 端的纹理数据。
纹理必须在导入设置中设置了 Is Readable 标志。
// Create a new texture and assign it to the renderer's material
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
void Start()
{
Texture2D texture = new Texture2D(128, 128);
GetComponent<Renderer>().material.mainTexture = texture;
for (int y = 0; y < texture.height; y++)
{
for (int x = 0; x < texture.width; x++)
{
Color color = ((x & y) != 0 ? Color.white : Color.gray);
texture.SetPixel(x, y, color);
}
}
texture.Apply();
}
}
另请参阅:SetPixel、SetPixels 函数、Graphics.CopyTexture。