/// <summary>
 /// Fade extension method for TransitionStep
 /// </summary>
 /// <typeparam name="T">interface type</typeparam>
 /// <param name="TransitionStep"></param>
 /// <returns></returns>
 public static ScreenFade ScreenFade(this TransitionStep transitionStep,
     Color? color = null,
     Texture2D texture = null,
     float delay = 0,
     float duration = 0.5f,
     TransitionHelper.TweenType tweenType = TransitionHelper.TweenType.linear,
     AnimationCurve animationCurve = null,
     Action onStart = null,
     Action<float> onUpdate = null,
     Action onComplete = null)
 {
     var newTransitionStep = new ScreenFade(transitionStep.Target,
         color,
         texture,
         delay,
         duration,
         tweenType,
         animationCurve,
         onStart,
         onUpdate,
         onComplete);
     transitionStep.AddOnCompleteTransitionStep(newTransitionStep);
     newTransitionStep.Parent = transitionStep;
     return newTransitionStep;
 }