NativeSlice 为 NativeArray,通过 NativeSlice 找到 NativeArray

NativeSlice as NativeArray, find NativeArray via NativeSlice

我 运行 遇到了让 ARFoundation、C# 和 HLSL 对话的问题 - 我正在尝试以可靠的方式在显卡上获取 ARFoundation 的点云位置数据不同的框架。我听说使用 BeginWrite 是最佳实践,但 BeginWrite 仅适用于 Vulkan,由于与 ARFoundation 冲突,我无法使用它。

点云的置信度值可以作为 NativeArray 读取,但包括位置在内的所有其他属性都在 NativeSlices 中,不幸的是,它似乎与计算缓冲区的 SetData 不兼容。

我宁愿不必将 NativeSlice 转换为 C# 数组只是为了将其发送到计算缓冲区,这已经是一个性能问题。 我读过一个声称有一些方法可以将 NativeSlice 视为 NativeArray,但我无法在文档中找到它。 我的具体问题是:

  1. 这种说法是真的吗?有没有一种方法可以将 NativeSlice 视为 NativeArray 而无需复制值?
  2. 有没有办法找到 NativeSlice 所属的 NativeArray?
  3. 有没有更好的方法来进行这种数据传输?以后我直接把修改发过去就好了,但还是很痛苦

非常感谢任何建议。

NativeSliceNativeArray:

至于切片是否是数组的一部分,直接做C-like方式:

if slicePtr >= arrayPtr && slicePtr + sliceLength <= arrayPtr + arrayLength