src | 源纹理或 RenderTargetIdentifier。 |
dst | 目标纹理或 RenderTargetIdentifier。 |
srcElement | 要从中复制的源纹理中的元素。例如,立方体贴图中的 CubemapFace 或纹理数组中的切片。如果 src 是 2D 纹理,则将该值设置为 0 。 |
srcMip | 要从中复制的 mipmap 级别。范围为 0 到纹理的 Texture.mipmapCount。默认值为 0 。 |
dstElement | 要复制到的源纹理中的元素。例如,立方体贴图中的 CubemapFace 或纹理数组中的切片。如果 `dst` 是 2D 纹理,则将该值设置为 0 。 |
dstMip | 要写入的 mipmap 级别。范围为 0 到纹理的 Texture.mipmapCount。默认值为 0 。 |
srcX | 要从中复制的 src 的起始 x 坐标。0 是纹理的左侧。 |
srcY | 要从中复制的 src 的起始 y 坐标。0 是纹理的底部。 |
srcWidth | 要复制的 src 的宽度。 |
srcHeight | 要复制的 src 的高度。 |
dstX | 要复制到的 dst 的 x 坐标。 |
dstY | 要复制到的 dst 的 y 坐标。 |
添加一个命令,将像素数据从一个纹理复制到另一个纹理。
此方法将一个命令添加到 GPU 上,以将像素数据从一个纹理复制到另一个纹理。如果您将 Texture.isReadable 设置为 true
,以便 src
和 dst
纹理都可读,则该方法还会在 CPU 上复制像素数据。
如果您将 Texture.isReadable 设置为 false
,则 CopyTexture
是复制纹理最快的方法之一。但是,要使用 CopyTexture
,以下必须在源和目标纹理区域中相同
您可能能够根据图形 API 在不兼容的格式之间进行复制。例如,在某些 API 上,您可以在具有相同位宽的格式之间进行复制。
根据您的图形 API,您可能无法在不同类型的纹理之间进行复制。有关兼容性的更多信息,请参阅 SystemInfo.copyTextureSupport 和 CopyTextureSupport。
如果 src
是一个深度专用渲染纹理,则必须复制整个纹理,而不是其中的一部分。深度专用渲染纹理将其颜色缓冲区设置为 None
的 颜色格式,并将深度缓冲区设置为有效的 RenderTexture.depthStencilFormat。
压缩纹理格式对使用区域变体的 CopyTexture 添加了一些限制。例如,PVRTC 格式不支持,因为它们不是基于块的(对于这些格式,您只能复制整个纹理或整个 mipmap 级别)。对于基于块的格式(例如,DXT、ETC),区域大小和坐标必须是压缩块大小的倍数(对于 DXT 为 4 个像素)。
即使您将 Texture.isReadable
设置为 true,如果您只复制压缩纹理的一部分,则此方法不会在 CPU 上复制像素数据。
其他资源:Graphics.CopyTexture、CopyTextureSupport。