Version: 2021.3

Mesh.GetNativeIndexBufferPtr

切换到手册
public IntPtr GetNativeIndexBufferPtr ();

返回

IntPtr 指向底层图形 API 索引缓冲区的指针。

描述

检索指向索引缓冲区的原生(底层图形 API)指针。

使用此函数可检索与网格索引缓冲区对应的指针/句柄, 因为它以原生图形 API 表示。这可以用于通过 本机代码插件启用网格操作。

索引缓冲区数据是每个索引 16 或 32 位,具体取决于 indexFormat。另外索引缓冲区的布局 取决于使用的 MeshTopology(请参阅 SetIndices)。最常见的情况是由三角形列表 组成的网格,这些列表的索引缓冲区是每个三角形三个索引。

返回的数据类型取决于底层图形 API: D3D11 上的 ID3D11Buffer D3D12 上的 ID3D12Resource Metal 上的 id<MTLBuffer> OpenGL/ES 上的缓冲区“名称”(作为 GLuint) internal representation on Vulkan, that should be accessed via IUnityGraphicsVulkan interface 对于大多数用例(从本机代码写入网格数据时),需要在获取原生缓冲区指针之前, 将网格标记为“动态”(请参阅 MarkDynamic)。通常这会将缓冲区切换为 CPU 可写入。

注意,在使用多线程渲染时调用此函数将与正在渲染的线程(慢速操作)同步,因此最佳做法是仅在初始化时设置所需的缓冲区指针。

另请参阅:本机代码插件GetNativeVertexBufferPtrSetIndices