版本:Unity 6(6000.0)
语言中文
  • C#

Texture2DArray.CopyPixels

建议更改

成功!

感谢你帮助我们改进 Unity 文档的质量。尽管我们无法接受所有提交,但我们确实会阅读用户建议的每一种更改,并根据需要进行更新。

关闭

提交失败

由于某种原因,无法提交你建议的更改。请在几分钟后<a>重试</a>。感谢你花时间帮助我们改进 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void CopyPixels(Texture src);

声明

public void CopyPixels(Texture src, int srcElement, int srcMip, int dstElement, int dstMip);

声明

public void CopyPixels(Texture src, int srcElement, int srcMip, int srcX, int srcY, int srcWidth, int srcHeight, int dstElement, int dstMip, int dstX, int dstY);

参数

src 源纹理。
srcElement 源纹理中要从中复制的元素。例如,立方体贴图中的CubemapFace或纹理数组中的切片。如果src是一个 2D 纹理,请将此值设为0
srcMip 从中复制的渐进纹理级别。范围是0到源纹理的Texture.mipmapCount。默认值为0
dstElement 此纹理数组中要复制到的切片索引。
dstMip 要写入的渐进纹理级别。范围是0到此纹理的Texture.mipmapCount。默认值为0
srcX 从中复制的src的起始 x 坐标。0是纹理的左侧。
srcY 从中复制的src的起始 y 坐标。0是纹理的底部。
srcWidth 要复制的src的宽度。
srcHeight 要复制的src的高度。
dstX 将要复制到该纹理的 x 坐标。
dstY 将要复制到该纹理的 y 坐标。

描述

从 CPU 上的另一个纹理复制像素数据。

此方法将像素数据从源纹理复制到 CPU 上的此纹理。纹理和 srcTexture.isReadable 必须为 true,并且在使用 CopyPixels 后,必须调用 Apply 来将已更改的像素上传到 GPU。

Apply 是一项耗时的操作,因为它会复制纹理中的所有像素,即使您只更改了一些像素,因此在调用此操作之前尽可能地更改更多像素。如果您只需要在 GPU 上复制像素,那么使用带有 GraphicsTexture 参数的 Graphics.CopyTexture 会更快。

要使用 CopyPixels,被复制的尺寸在两个纹理中必须相同。使用区域重载来指定比整个 Mipmap 级别更小的区域。

元素重载中不支持压缩 Crunch 纹理格式。基于区域的重载根本不支持压缩纹理格式。如果纹理不可读,Unity 会抛出 UnityException;如果 CopyPixels 失败,会抛出 ArgumentException

其他资源:ApplyGraphics.CopyTextureSetPixels