# LerpUnclamped

> Linearly interpolates between colors a and b using the interpolation ratio t.

## Definition

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

## LerpUnclamped(Color, Color, float)

Linearly interpolates between colors `a` and `b` using the interpolation ratio `t`.

```csharp
public static Color LerpUnclamped(Color a, Color b, float t)
```

### Parameters

**** (\[Color]\(/engine/6000.6/script-reference/unityengine/color)): The start color, returned when t = 0.**** (\[Color]\(/engine/6000.6/script-reference/unityengine/color)): The end color, returned when t = 1.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The interpolation ratio. The ratio will not be clamped, and can be outside of the \[0; 1] range.

### Returns

| Type                                                          | Description                                                        |
| ------------------------------------------------------------- | ------------------------------------------------------------------ |
| [Color](/engine/6000.6/script-reference/unityengine/color.md) | The color resulting from linear interpolation between `a` and `b`. |

### Remarks

`t` is clamped to be between 0 and 1. When `t` is 0, the function returns `a`. When `t` is 1, the function returns `b`.

If `t` is less than 0, or greater than 1, the result will be linearly extrapolated from `a` and `b`. For example, `Color.LerpUnclamped(new Color(0.0f, 0.0f, 0.0f), new Color(0.5f, 0.5f, 0.5f), 3.0f)` will return a color given by `new Color(1.5f, 1.5f, 1.5f)`.

The script below will set the color of MeshRenderer to the result of unclamped interpolation using parameters specified in the inspector. To use the script, attach it to a GameObject with a MeshRenderer.

```csharp
using UnityEngine;

[RequireComponent(typeof(MeshRenderer))]
public class ColorLerp : MonoBehaviour
{
    public Color colorA = Color.white;
    public Color colorB = Color.red;
    public float interpolationRatio = 0.5f;

    private Material material;

    private void Start()
    {
        material = GetComponent<Renderer>().material;
    }

    void Update()
    {
        material.color = Color.LerpUnclamped(colorA, colorB, interpolationRatio);
    }
}
```

Additional Resources: [Color.Lerp](/engine/6000.6/script-reference/unityengine/color/lerp.md).

## LerpUnclamped(Color, Color, float)

Linearly interpolates between colors `a` and `b` using the interpolation ratio `t`.

```csharp
public static Color LerpUnclamped(in Color a, in Color b, float t)
```

### Parameters

**** (\[Color]\(/engine/6000.6/script-reference/unityengine/color)): The start color, returned when t = 0.**** (\[Color]\(/engine/6000.6/script-reference/unityengine/color)): The end color, returned when t = 1.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The interpolation ratio. The ratio will not be clamped, and can be outside of the \[0; 1] range.

### Returns

| Type                                                          | Description                                                        |
| ------------------------------------------------------------- | ------------------------------------------------------------------ |
| [Color](/engine/6000.6/script-reference/unityengine/color.md) | The color resulting from linear interpolation between `a` and `b`. |

### Remarks

`t` is clamped to be between 0 and 1. When `t` is 0, the function returns `a`. When `t` is 1, the function returns `b`.

If `t` is less than 0, or greater than 1, the result will be linearly extrapolated from `a` and `b`. For example, `Color.LerpUnclamped(new Color(0.0f, 0.0f, 0.0f), new Color(0.5f, 0.5f, 0.5f), 3.0f)` will return a color given by `new Color(1.5f, 1.5f, 1.5f)`.

The script below will set the color of MeshRenderer to the result of unclamped interpolation using parameters specified in the inspector. To use the script, attach it to a GameObject with a MeshRenderer.

```csharp
using UnityEngine;

[RequireComponent(typeof(MeshRenderer))]
public class ColorLerp : MonoBehaviour
{
    public Color colorA = Color.white;
    public Color colorB = Color.red;
    public float interpolationRatio = 0.5f;

    private Material material;

    private void Start()
    {
        material = GetComponent<Renderer>().material;
    }

    void Update()
    {
        material.color = Color.LerpUnclamped(colorA, colorB, interpolationRatio);
    }
}
```

Additional Resources: [Color.Lerp](/engine/6000.6/script-reference/unityengine/color/lerp.md).
