index | 子网格索引。参见 subMeshCount。超出范围的索引会抛出异常。 |
desc | 子网格数据。 |
flags | 控制函数行为的标志,参见 MeshUpdateFlags。 |
设置网格子网格的信息。
请注意,SetSubMesh
、SubMeshDescriptor 和 SetIndexBufferData 旨在供希望获得最大性能的高级用户使用,因为它们操作的是底层网格数据结构,这些结构主要用于原始索引缓冲区、顶点缓冲区和网格子集数据。使用这些方法时,Unity 执行很少的数据验证,因此您必须确保数据有效。
特别是,您必须确保 SubMesh 索引范围和拓扑设置为正确的值。SubMesh 索引(indexStart 和 indexCount)不得与任何其他 SubMesh 索引重叠。
有关从脚本向网格分配数据的更简单和更高级方法之间的区别的信息,请参阅 Mesh 页面上的说明。
SubMeshDescriptor-bounds、SubMeshDescriptor-firstVertex 和 SubMeshDescriptor-vertexCount 的 SubMeshDescriptor 值由 SetSubMesh
自动计算,除非传递了 MeshUpdateFlags.DontRecalculateBounds 标志。请注意,这仅适用于 SubMesh 的边界。您必须调用 Mesh.RecalculateBounds 来重新计算网格本身的边界。
常规用法模式为
var mesh = new Mesh();
// setup vertex buffer data mesh.vertices = ...;
// set index buffer mesh.SetIndexBufferParams(...); mesh.SetIndexBufferData(...);
// setup information about mesh subsets mesh.subMeshCount = ...; mesh.SetSubMesh(index, ...);
// update bounds of the mesh mesh.RecalculateBounds();
有关为每个子网格设置哪些数据的详细信息,请参阅 SubMeshDescriptor。
其他资源:subMeshCount、GetSubMesh、SetIndexBufferParams、SetIndexBufferData、MeshUpdateFlags。