# Lerp(Quaternion, Quaternion, float)

> Interpolates between a and b by t and normalizes the result afterwards.

## Definition

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

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

### Parameters

**** (\[Quaternion]\(/engine/6000.0/script-reference/unityengine/quaternion)): Start unit quaternion value, returned when t = 0.**** (\[Quaternion]\(/engine/6000.0/script-reference/unityengine/quaternion)): End unit quaternion value, returned when t = 1.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): Interpolation ratio. The value is clamped to the range \[0, 1].

### Returns

| Type                                                                    | Description                                                 |
| ----------------------------------------------------------------------- | ----------------------------------------------------------- |
| [Quaternion](/engine/6000.0/script-reference/unityengine/quaternion.md) | A unit quaternion interpolated between quaternions a and b. |

### Remarks

This is faster than Slerp but the angular velocity will not be constant if the rotations are far apart.

```csharp
// Interpolates rotation between the rotations
// of from and to.
// (Choose from and to not to be the same as
// the object you attach this script to)

using UnityEngine;

public class Example : MonoBehaviour
{
    Transform from;
    Transform to;
    float speed = 0.01f;
    float timeCount = 0.0f;

    void Update()
    {
        transform.rotation = Quaternion.Lerp(from.rotation, to.rotation, timeCount * speed);
        timeCount = timeCount + Time.deltaTime;
    }
}
```

Additional Resources: [Quaternion.Slerp](/engine/6000.0/script-reference/unityengine/quaternion/slerp.md). [Quaternion.LerpUnclamped](/engine/6000.0/script-reference/unityengine/quaternion/lerpunclamped.md).
