# Lerp(float, float, float)

> Linearly interpolates between a and b by t.

## Definition

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

```csharp
public static float Lerp(float a, float b, float t)
```

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The start value.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The end value.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The interpolation value between the two floats.

### Returns

| Type                                                          | Description                                                 |
| ------------------------------------------------------------- | ----------------------------------------------------------- |
| [float](https://learn.microsoft.com/dotnet/api/system.single) | The interpolated float result between the two float values. |

### Remarks

The parameter `t` is clamped to the range \[0, 1].

When `t` = 0 returns `a`.

When `t` = 1 return `b`.

When `t` = 0.5 returns the midpoint of `a` and `b`.

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    // animate the game object from -1 to +1 and back
    public float minimum = -1.0F;
    public float maximum =  1.0F;

    // starting value for the Lerp
    static float t = 0.0f;

    void Update()
    {
        // animate the position of the game object...
        transform.position = new Vector3(Mathf.Lerp(minimum, maximum, t), 0, 0);

        // .. and increase the t interpolater
        t += 0.5f * Time.deltaTime;

        // now check if the interpolator has reached 1.0
        // and swap maximum and minimum so game object moves
        // in the opposite direction.
        if (t > 1.0f)
        {
            float temp = maximum;
            maximum = minimum;
            minimum = temp;
            t = 0.0f;
        }
    }
}
```

Additional Resources: [Mathf.LerpUnclamped](/engine/6000.7/script-reference/unityengine/mathf/lerpunclamped.md), [Mathf.LerpAngle](/engine/6000.7/script-reference/unityengine/mathf/lerpangle.md), [Mathf.InverseLerp](/engine/6000.7/script-reference/unityengine/mathf/inverselerp.md).
