Version: 2020.3
public static Rendering.AsyncGPUReadbackRequest Request (ComputeBuffer src, Action<AsyncGPUReadbackRequest> callback);
public static Rendering.AsyncGPUReadbackRequest Request (ComputeBuffer src, int size, int offset, Action<AsyncGPUReadbackRequest> callback);
public static Rendering.AsyncGPUReadbackRequest Request (Texture src, int mipIndex, Action<AsyncGPUReadbackRequest> callback);
public static Rendering.AsyncGPUReadbackRequest Request (Texture src, int mipIndex, TextureFormat dstFormat, Action<AsyncGPUReadbackRequest> callback);
public static Rendering.AsyncGPUReadbackRequest Request (Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, Action<AsyncGPUReadbackRequest> callback);
public static Rendering.AsyncGPUReadbackRequest Request (Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, TextureFormat dstFormat, Action<AsyncGPUReadbackRequest> callback);

参数

src 要从中读取数据的资源。
size Size in bytes of the data to be retrieved from the ComputeBuffer or GraphicsBuffer.
offset Offset in bytes in the ComputeBuffer or GraphicsBuffer.
mipIndex 要获取的 Mipmap 的索引。
dstFormat 数据的目标 TextureFormat。如果目标格式与 GPU 中存储的格式不同,则转换是自动进行的。
x 要获取的纹理数据的起始 X 坐标(以像素为单位)。
width 要获取的纹理数据的宽度(以像素为单位)。
y 要获取的纹理数据的起始 Y 坐标(以像素为单位)。
height 要获取的纹理数据的高度(以像素为单位)。
z 正在获取的 Texture3D 的起始 Z 坐标(以像素为单位)。正在获取的 TextureCube、Texture2DArray 和 TextureCubeArray 的起始层索引。
depth 正在获取的 Texture3D 的深度(以像素为单位)。TextureCube、TextureArray 和 TextureCubeArray 的层数。
callback 完成请求后调用的可选委托 System.Action。完成的请求作为参数传递给 System.Action。

返回

AsyncGPUReadbackRequest 返回 AsyncGPUReadbackRequest,可用于确定数据何时可用。否则,返回带有错误的请求。

描述

从 GPU 资源中异步获取数据。

如果返回了带有错误的请求,则调用 AsyncGPUReadbackRequest.hasError 将返回 true。

对于纹理数据,将根据源纹理的尺寸检查范围。如果图形 QualitySettings 设置得足够低而足以生成缩小尺寸的纹理,则必须请求缩小的尺寸。使用 QualitySettings.masterTextureLimit 通过向右移位的方式调整宽度和高度(以及 x、y,如果需要的话)。