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

Cubemap.CopyPixels

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。尽管我们无法接受所有提交,但我们会仔细阅读来自用户的每一条建议,并会酌情进行更新。

关闭

提交失败

由于某种原因,您建议的更改未能提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

声明

public void CopyPixels(纹理 src);

参数

src 源纹理。
srcElement 要从中复制的源纹理中的元素。例如,Cubemap 中的 CubemapFace 或纹理数组中的分块。如果 src 是 2D 纹理,请将该值设为 0
srcMip 要从中复制的 mipmap 级别。范围是从 0 到源纹理的 纹理.mipmapCount。默认值为 0
dstFace 此 Cubemap 中要复制到的 CubemapFace
dstMip 要写入的 mipmap 级别。范围是从 0 到此纹理的 纹理.mipmapCount。默认值为 0
srcX 要从中复制的 src 的起始 x 坐标。0 为纹理的左侧。
srcY 要从中复制的 src 的起始 y 坐标。0 为纹理的底部。
srcWidth 要复制的 src 的宽度。
srcHeight 要复制的 src 的高度。
dstX 要复制到的此纹理的 x 坐标。
dstY 要复制到的此纹理的 y 坐标。

说明

从另一个纹理拷贝像素数据到 CPU。

此方法从源纹理拷贝像素数据到 CPU 中的此纹理。纹理.isReadable 对于纹理和 src 都必须设为 true,并且您必须在 CopyPixels 后调用 Apply 以将更改后的像素上传到 GPU。

Apply 是一个昂贵的操作,因为它会拷贝纹理中所有的像素,即使你只更改了其中一些像素,因此在你调用此操作之前应尽可能更改更多像素。如果你只需要在 GPU 上拷贝像素,则应该使用带 GraphicsTexture 参数的 Graphics.CopyTexture,速度会更快。

要使用 CopyPixels,待拷贝的大小在两个纹理中必须相同。使用基于区域的重载来指定比完整渐进纹理级别更小的区域。

基于元素的重载不支持 Crunch 压缩纹理格式。基于区域的重载不支持任何压缩纹理格式。如果任一纹理不可读,Unity 会引发 UnityException,如果 CopyPixels 失败,则会引发 ArgumentException

其他资源:ApplyGraphics.CopyTextureSetPixels