Newer
Older
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class MathfExtensions
{
/// <summary>
/// Lineary Lerps between <paramref name="start"/> and <paramref name="end"/> within <paramref name="time"/>, using <see cref="Time.deltaTime"/>.
/// Guarantees returning <paramref name="end"/> at last step,
/// </summary>
/// <param name="start">Value to start</param>
/// <param name="end">Value to end</param>
/// <param name="time">Time to pass</param>
/// <returns>IEnumerator<float> with statet behaviour</returns>
public static IEnumerator<float> LerpInTime(float start, float end, float time)
{
if (time < 0) yield break;
for (float current_time = 0; time > current_time; current_time += Time.deltaTime)
yield return Mathf.Lerp(start, end, current_time / time);
yield return end;
}
/// \copydoc LerpInTime(float, float, float)
/// <remarks>Wrappes static method and exposes it as Extension.</remarks>
/// <param name="iotta">Ignored. Here to expose Extension.</param>
public static IEnumerator<float> LerpInTime(this float iotta, float start, float end, float time)
=> LerpInTime(start, end, time);
}