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

Texture2D.CopyPixels

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交,但我们确实阅读了用户提出的每个更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public void CopyPixels(Texture src);

声明

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

声明

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

参数

src 源纹理。
srcElement 要从中复制的源纹理中的元素。例如,立方体贴图中的CubemapFace或纹理数组中的切片。如果src是二维纹理,则将值设置为0
srcMip 要从中复制的mipmap级别。范围是0到源纹理的Texture.mipmapCount。默认值为0
dstMip 要写入的mipmap级别。范围是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级别更小的区域。

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

其他资源:ApplyGraphics.CopyTextureSetPixels