Play character animation after lerp exactly to a position ?

I have a grab ladder and go up animation for my character. To do this i need to lerp my character to correct position and then play animation to match with ladder. How i can say unity when my lerp is done and character is exactly in that position then play animation ?
I know lerp never finished but i think there is a way because its very neccesary to know when lerp is done.

dont use lerp for that. Use

float distanceToActive = .5f;
if(Vector3.Distance(player.transform.position, ladder.transform.position) <= distanceToActivate) 
{
// Climb the ladder animation
}

If you use Lerp like this: transform.position = Vector3.Lerp(transform.position, targetPos, Time.DeltaTime * speed) (as is very common), it’s true that you will get a linear movement that will not reach an end. Yet that’s not how lerping generally should be done.

I’m not sure if lerping is the right solution for your case, but if you are looking for a position lerp, here’s an example how it works:

using System.Collections;
using System;
using UnityEngine;

public class PositionLerpExample : MonoBehaviour
{
    public float duration = 1;
    public Vector3 endPos;

    private float CurrentTime { get { return Time.timeSinceLevelLoad; } }

    private void Start()
    {
        StartCoroutine(PositionLerp(() => Debug.Log("Ready")));
    }

    private IEnumerator PositionLerp(Action callback = null)
    {
        var startTime = CurrentTime;
        var endTime = startTime + duration;
        var startPos = transform.position;
        while (true)
        {
            if (CurrentTime >= endTime) { break; }
            var lerpTime = Mathf.InverseLerp(startTime, endTime, CurrentTime);
            transform.position = Vector3.Lerp(startPos, endPos, lerpTime);
            yield return null;
        }
        if (callback != null)
        {
            callback();
        }
    }
}

For callbacks, coroutines are handy, but you could use the Update loop as well, as in the official example