# MoveTowards(float, float, float)

> Moves a value current towards target.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/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.7/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);
    }
}
```
