Version: 2022.3
  • C#


struct in UnityEngine.Rendering


Implemented in:UnityEngine.CoreModule

Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.




Contains information about a single sub-mesh of a Mesh.

Simple usage of Mesh scripting API involves using functions like Mesh.triangles, Mesh.vertices and so on.

For advanced use cases that require maximum performance, you can use the advanced API, which has functions like Mesh.SetSubMesh, Mesh.SetIndexBufferParams, and Mesh.SetIndexBufferData. This advanced API gives access to the underlying mesh data structures that primarily work on raw index buffers, vertex buffers and mesh subset data.

A single sub-mesh represents part of the Mesh that is using one material. Many Meshes use just one material, but some might use more. Information in a sub-mesh is composed of:

The bounds, firstVertex and vertexCount values are calculated automatically by Mesh.SetSubMesh, unless MeshUpdateFlags.DontRecalculateBounds flag is passed.

Additional resources: Mesh.SetSubMesh, Mesh.GetSubMesh, Mesh.SetIndexBufferParams, Mesh.SetIndexBufferData.


baseVertexOffset that is added to each value in the index buffer, to compute the final vertex index.
boundsBounding box of vertices in local space.
firstVertexFirst vertex in the index buffer for this sub-mesh.
indexCountIndex count for this sub-mesh face data.
indexStartStarting point inside the whole Mesh index buffer where the face index data is found.
topologyFace topology of this sub-mesh.
vertexCountNumber of vertices used by the index buffer of this sub-mesh.


SubMeshDescriptorCreate a submesh descriptor.