Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


SetIndexBufferData

Sets the data of the index buffer of the Mesh.
Read time 4 minutesLast updated 6 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule

SetIndexBufferData<T>(NativeArray<T>, int, int, int, MeshUpdateFlags)

Sets the data of the index buffer of the Mesh.
public void SetIndexBufferData<T>(NativeArray<T> data, int dataStart, int meshBufferStart, int count, MeshUpdateFlags flags = MeshUpdateFlags.Default) where T : struct

Parameters

Index buffer data array.

dataStart

The first element in the data to copy from.

meshBufferStart

The first element in the mesh index buffer to receive the data.

count

Count of indices to copy.

Flags controlling the function behavior, see MeshUpdateFlags.

Remarks

Note: This method is designed for advanced users aiming for maximum performance because it operates on the underlying mesh data structures that primarily work on raw index buffers, vertex buffers and mesh subset data. Using this method, Unity performs very little data validation, so you must ensure your data is valid.
In particular, you must ensure that the SubMesh index range and topology are updated via Mesh.SetSubMesh.
By default, the index buffer data array is checked for out-of-bounds indices. flags parameter can be set to MeshUpdateFlags.DontValidateIndices to turn the validation off for performance reasons.
For information about the difference between the simpler and more advanced methods of assigning data to a Mesh from script, see the notes on the Mesh page.
General usage pattern is:
var mesh = new Mesh();// setup vertex buffer datamesh.vertices = ...;// set index buffermesh.SetIndexBufferParams(...);mesh.SetIndexBufferData(...);// setup information about mesh subsetsmesh.subMeshCount = ...;mesh.SetSubMesh(index, ...);

SetIndexBufferData<T>(`<>[], int, int, int, MeshUpdateFlags)

Sets the data of the index buffer of the Mesh.
public void SetIndexBufferData<T>(T[] data, int dataStart, int meshBufferStart, int count, MeshUpdateFlags flags = MeshUpdateFlags.Default) where T : struct

Parameters

data

Index buffer data array.

dataStart

The first element in the data to copy from.

meshBufferStart

The first element in the mesh index buffer to receive the data.

count

Count of indices to copy.

Flags controlling the function behavior, see MeshUpdateFlags.

Remarks

Note: This method is designed for advanced users aiming for maximum performance because it operates on the underlying mesh data structures that primarily work on raw index buffers, vertex buffers and mesh subset data. Using this method, Unity performs very little data validation, so you must ensure your data is valid.
In particular, you must ensure that the SubMesh index range and topology are updated via Mesh.SetSubMesh.
By default, the index buffer data array is checked for out-of-bounds indices. flags parameter can be set to MeshUpdateFlags.DontValidateIndices to turn the validation off for performance reasons.
For information about the difference between the simpler and more advanced methods of assigning data to a Mesh from script, see the notes on the Mesh page.
General usage pattern is:
var mesh = new Mesh();// setup vertex buffer datamesh.vertices = ...;// set index buffermesh.SetIndexBufferParams(...);mesh.SetIndexBufferData(...);// setup information about mesh subsetsmesh.subMeshCount = ...;mesh.SetSubMesh(index, ...);

SetIndexBufferData<T>(List<T>, int, int, int, MeshUpdateFlags)

Sets the data of the index buffer of the Mesh.
public void SetIndexBufferData<T>(List<T> data, int dataStart, int meshBufferStart, int count, MeshUpdateFlags flags = MeshUpdateFlags.Default) where T : struct

Parameters

Index buffer data array.

dataStart

The first element in the data to copy from.

meshBufferStart

The first element in the mesh index buffer to receive the data.

count

Count of indices to copy.

Flags controlling the function behavior, see MeshUpdateFlags.

Remarks

Note: This method is designed for advanced users aiming for maximum performance because it operates on the underlying mesh data structures that primarily work on raw index buffers, vertex buffers and mesh subset data. Using this method, Unity performs very little data validation, so you must ensure your data is valid.
In particular, you must ensure that the SubMesh index range and topology are updated via Mesh.SetSubMesh.
By default, the index buffer data array is checked for out-of-bounds indices. flags parameter can be set to MeshUpdateFlags.DontValidateIndices to turn the validation off for performance reasons.
For information about the difference between the simpler and more advanced methods of assigning data to a Mesh from script, see the notes on the Mesh page.
General usage pattern is:
var mesh = new Mesh();// setup vertex buffer datamesh.vertices = ...;// set index buffermesh.SetIndexBufferParams(...);mesh.SetIndexBufferData(...);// setup information about mesh subsetsmesh.subMeshCount = ...;mesh.SetSubMesh(index, ...);