public static Coroutine LerpMinToMax(float lengthInSec, Color min, Color max, Color currentPoint, colorDel callback, bool lerpInverse) { if (!lerpInverse) { if (currentPoint == min) { return currentInstance.StartCoroutine(lerpColor(lengthInSec, min, max, callback)); } else if (currentPoint != max) { return currentInstance.StartCoroutine(lerpColor(lengthInSec, currentPoint, max, callback)); } } else { if (currentPoint == max) { return currentInstance.StartCoroutine(lerpColor(lengthInSec, max, min, callback)); } else if (currentPoint != min) { return currentInstance.StartCoroutine(lerpColor(lengthInSec, currentPoint, min, callback)); } } return null; }
public static IEnumerator lerpColor(float lengthInSec, Color start, Color end, colorDel callback) { for (float i = 0; i < lengthInSec; i += Time.deltaTime) { Color currentPoint = Color.Lerp(start, end, i / lengthInSec); callback(currentPoint); yield return null; } callback(end); }