Version: 2021.3
public void Apply (bool updateMipmaps= true, bool makeNoLongerReadable= false);

参数

updateMipmaps 当设置为 true 时,将重新计算多级渐进纹理级别。
makeNoLongerReadable When set to true, Unity discards the copy of pixel data in CPU-addressable memory after this operation.

描述

实际应用任何先前的 SetPixelSetPixels 更改。

如果 updateMipmaps 为 /true/,则还将重新计算多级渐进纹理级别, 并且将基本级别作为源。通常会在所有情况下都使用 /true/, 除非您使用 SetPixels 亲自修改了 Mip 级别。 默认情况下,updateMipmaps 设置为 /true/。

If makeNoLongerReadable is true, Unity will free the memory used to store the CPU-addressable copy of the pixel data after uploading it to the GPU. isReadable becomes false. By default makeNoLongerReadable is set to false.

应用是一项成本可能很高的操作,因此您想要在 Apply 调用之间尽可能多地 更改像素。

或者,如果您不需要访问 CPU 上的像素,您可以使用 Graphics.CopyTexture 来快速复制 GPU 端的纹理数据。注意,调用 Apply 可能会撤销之前调用 Graphics.CopyTexture 的结果。

纹理必须在导入设置中设置了 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 &amp; y) != 0 ? Color.white : Color.gray); texture.SetPixel(x, y, color); } } texture.Apply(); } }

另请参阅:SetPixelSetPixels 函数、Graphics.CopyTexture