# Using Lerp() Properly In Unity ## The Code Make sure to actually use time in the correct way to interpolate between two values with `Lerp()` in [[Unity]], i.e. don't just throw `Time.deltaTime` in for the time parameter. ```csharp private IEnumerator RaisePositionRoutine() { Vector3 originalPos = transform.localPosition; Vector3 startPos = originalPos - new Vector3(0f, _raiseDistance, 0f); transform.localPosition = startPos; float elapsed = 0f; while (elapsed < _duration) { elapsed += Time.deltaTime; float t = Mathf.Clamp01(elapsed / _fadeDuration); transform.localPosition = Vector3.Lerp(startPos, originalPos, t); yield return null; } // Ensure final state transform.localPosition = originalPos; } ``` #c_sharp #unity