# SetShapeVertex(int, int, Vector2)

> Sets a single vertex of a shape.

## Definition

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

```csharp
public void SetShapeVertex(int shapeIndex, int vertexIndex, Vector2 vertex)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The index of the shape stored in the [PhysicsShapeGroup2D](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d.md). The shape index is zero-based with the shape group having a quantity of shapes specified by [shapeCount](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d/shapecount.md).**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The index of the shape vertex stored in the [PhysicsShapeGroup2D](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d.md). The vertex index is zero-based with the shape having a quantity of vertex specified by [PhysicsShape2D.vertexCount](/engine/6000.0/script-reference/unityengine/physicsshape2d/vertexcount.md).**** (\[Vector2]\(/engine/6000.0/script-reference/unityengine/vector2)): The value to set the shape vertex to.

### Remarks

**NOTE**: When accessing multiple vertices, it is more efficient to do one of the following:

* Get all the shape vertices using [GetShapeVertices](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d/getshapevertices.md)
* Get all the shape group vertices using [GetShapeData](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d/getshapedata.md)
* Create the [PhysicsShapeGroup2D](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d.md) with explicit shapes and vertices lists using the shape group [Constructor](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d/ctor.md)

Additional Resources: [GetShapeVertex](/engine/6000.0/script-reference/unityengine/physicsshapegroup2d/getshapevertex.md).

### Examples

```csharp
using UnityEngine;
using UnityEngine.Assertions;

public class Example : MonoBehaviour
{
    void Start()
    {
        // Create a shape group.
        var shapeGroup = new PhysicsShapeGroup2D();

        // Add a Capsule to the shape group.
        var shapeIndex = shapeGroup.AddCapsule
            (
                vertex0: Vector2.down,
                vertex1: Vector2.up,
                radius: 0.5f
            );

        // Fetch the shape vertices from the shape group.
        var vertex0 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 0);
        var vertex1 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 1);

        // Validate the Capsule vertices.
        Assert.AreEqual(Vector2.down, vertex0);
        Assert.AreEqual(Vector2.up, vertex1);

        // Set the shape vertices in the shape group.
        shapeGroup.SetShapeVertex(shapeIndex, vertexIndex: 0, vertex: Vector2.left);
        shapeGroup.SetShapeVertex(shapeIndex, vertexIndex: 1, vertex: Vector2.right);

        // Fetch the shape vertices from the shape group.
        vertex0 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 0);
        vertex1 = shapeGroup.GetShapeVertex(shapeIndex, vertexIndex: 1);

        // Validate the Capsule vertices.
        Assert.AreEqual(Vector2.left, vertex0);
        Assert.AreEqual(Vector2.right, vertex1);
    }
}
```
