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

GraphicsBuffer.GetData

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

声明

public void GetData(Array data);

声明

public void GetData(Array data, int managedBufferStartIndex, int computeBufferStartIndex, int count);

参数

data 接收数据的数组。
managedBufferStartIndex data 中第一个元素索引,检索到的元素将被复制到该索引处。
computeBufferStartIndex 从该索引处读取元素的缓冲区的第一个元素索引。
count 要检索的元素数量。

描述

将缓冲区中的数据值读入数组。数组只能使用 可直接映射 类型。

检索到的数据将遵循正在使用的图形 API 的数据布局规则。有关跨平台兼容性的信息,请参见 计算着色器

请注意,此函数将数据从 GPU 读取回来,这可能很慢。如果已提交任何写入该缓冲区的 GPU 工作,Unity 将等待任务完成,然后再检索请求的数据,从而确保此函数返回最新的结果。出于这个原因,您应该使用 AsyncGPUReadback,因为它在后台执行请求,并允许您检查结果何时可用,而不会阻塞主线程。

注意:只有 可直接映射 数据类型可以从缓冲区复制到数组,数组的类型必须是可直接映射的类型。如果尝试使用不可直接映射的类型,将引发异常。

其他资源:SetDatacountstride