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

ComputeBuffer.GetData

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public void GetData(Array data);

参数

data 用于接收数据的数组。

描述

从缓冲区中读取数据值到数组。数组只能使用 可直接访问的 类型。

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

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

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

其他资源:SetDatacountstride


声明

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

参数

data 用于接收数据的数组。
managedBufferStartIndex 数据中检索到的元素被复制到的第一个元素索引。
computeBufferStartIndex 从其读取元素的计算缓冲区的第一个元素索引。
count 要检索的元素数量。

描述

从缓冲区中部分读取数据值到数组。

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

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

其他资源:SetDatacountstride