# MoveTowards(float, float, float)

> Moves a value current towards target.

## Definition

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

```csharp
public static float MoveTowards(float current, float target, float maxDelta)
```

### Parameters

**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The current value.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The value to move towards.**** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)): The maximum change applied to the current value.

### Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [float](https://learn.microsoft.com/dotnet/api/system.single) |             |

### Remarks

This function is similar to [Mathf.Lerp](/engine/6000.0/script-reference/unityengine/mathf/lerp.md) except that this function ensures the rate of change never exceeds maxDelta and that the current value is never greater than the target value. Negative values of maxDelta pushes the value away from target.

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    float currStrength;
    float maxStrength;
    float recoveryRate;

    void Update()
    {
        currStrength = Mathf.MoveTowards(currStrength, maxStrength, recoveryRate * Time.deltaTime);
    }
}
```
