private IEnumerator Processor(ITweenable processor, Vector4 startPoint, Vector4 endPoint, float time, float delay, AnimationCurve curve) { yield return(new WaitForSeconds(delay)); var delta = 0f; var current = Vector4.zero; while (delta < 1) { current = startPoint + ((endPoint - startPoint) * GetDelta(delta, curve)); processor.Process(current); delta += Time.deltaTime / time; yield return(null); } processor.Finished(endPoint); yield return(null); }