# Reflect(Vector2, Vector2)

> Reflects a vector off the surface defined by a normal.

## Definition

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

```csharp
public static Vector2 Reflect(Vector2 inDirection, Vector2 inNormal)
```

### Parameters

**** (\[Vector2]\(/engine/6000.0/script-reference/unityengine/vector2)): The direction vector towards the surface.**** (\[Vector2]\(/engine/6000.0/script-reference/unityengine/vector2)): The normal vector that defines the surface.

### Returns

| Type                                                              | Description                                                                    |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [Vector2](/engine/6000.0/script-reference/unityengine/vector2.md) | A vector of equal magnitude to `inDirection` but with its direction reflected. |

### Remarks

This method calculates a reflected vector using the following formula: v = inDirection - 2 \* inNormal \* dot(inDirection inNormal). The `inNormal` vector defines a surface. A surface's normal is the vector that is perpendicular to its surface. The `inDirection` vector is treated as a directional arrow coming into the surface.
