# RecalculateBounds(MeshUpdateFlags)

> Recalculate the bounding volume of the Mesh and all of its sub-meshes with the vertex data.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public void RecalculateBounds(MeshUpdateFlags flags)
```

### Parameters

**** (\[MeshUpdateFlags]\(/engine/6000.0/script-reference/unityengine/rendering/meshupdateflags)): Flags controlling the function behavior, see [MeshUpdateFlags](/engine/6000.0/script-reference/unityengine/rendering/meshupdateflags.md).

### Remarks

After modifying vertices you should call this function to ensure the bounding volume is correct. Assigning [Mesh.triangles](/engine/6000.0/script-reference/unityengine/mesh/triangles.md) automatically recalculates the bounding volume.

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        Mesh mesh = GetComponent<MeshFilter>().mesh;
        mesh.RecalculateBounds();
    }
}
```

Unity can only recalculate the bounding volume for Meshes that use the default [VertexAttributeFormat.Float32](/engine/6000.0/script-reference/unityengine/rendering/vertexattributeformat/float32.md) vertex position format. If your Mesh uses a non-standard vertex position data format, you must assign the [Mesh.bounds](/engine/6000.0/script-reference/unityengine/mesh/bounds.md) manually.

The bounds of a [SkinnedMeshRenderer](/engine/6000.0/script-reference/unityengine/skinnedmeshrenderer.md) cannot be recalculated, and can only be changed by setting the localBounds manually.

Additional Resources: [Mesh.bounds](/engine/6000.0/script-reference/unityengine/mesh/bounds.md).
