private static OperationalStructBase <T> EaseInOutQuintic(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration / 2.0f; if (time <= 1.0f) { return(delta / 2.0f * Mathf.Pow(time, 5.0f) + initial); } time -= 2.0f; return(delta / 2.0f * (Mathf.Pow(time, 5.0f) + 2.0f) + initial); }
public TweenInformation(float startTime, OperationalStructBase <T> start, OperationalStructBase <T> finish, float duration, EaseType easeType, out T startValue, out T finishValue) { Time = startTime; StartTime = startTime; Start = start; Finish = finish; Duration = duration; EaseType = easeType; startValue = start.Value; finishValue = finish.Value; }
private static OperationalStructBase <T> EaseInOutCircular(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration / 2.0f; if (time <= 1.0f) { return(-delta / 2.0f * (Mathf.Sqrt(1 - Mathf.Pow(time, 2.0f)) - 1.0f) + initial); } time -= 2.0f; return(delta / 2.0f * (Mathf.Sqrt(1 - Mathf.Pow(time, 2.0f)) + 1.0f) + initial); }
private static OperationalStructBase <T> EaseInOutQuadratic(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration / 2.0f; if (time <= 1.0f) { return(delta / 2.0f * time * time + initial); } time -= 1.0f; return(-delta / 2.0f * (time * (time - 2.0f) - 1.0f) + initial); }
private static OperationalStructBase <T> EaseInOutBack(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { const float threshold = EaseBackThreshold * 1.525f; time /= duration / 2.0f; if (time <= 1.0f) { return(delta / 2.0f * (Mathf.Pow(time, 2.0f) * ((threshold + 1.0f) * time - threshold)) + initial); } time -= 2.0f; return(delta / 2.0f * (Mathf.Pow(time, 2.0f) * ((threshold + 1.0f) * time + threshold) + 2.0f) + initial); }
private static OperationalStructBase <T> Easing <T>(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration, EaseType easeType) where T : struct { if (!EasingFunctions <T> .EasingFunctionMap.ContainsKey(easeType)) { throw new ArgumentException($"EaseType: '{easeType.ToString()}' does not implement yet."); } if (time <= 0.0f) { return(initial); } if (time >= duration) { return(initial + delta); } return(EasingFunctions <T> .EasingFunctionMap[easeType](time, initial, delta, duration)); }
private static OperationalStructBase <T> EaseOutBack(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration; time -= 1.0f; return(delta * (Mathf.Pow(time, 2.0f) * ((EaseBackThreshold + 1.0f) * time + EaseBackThreshold) + 1.0f) + initial); }
private static OperationalStructBase <T> EaseOutCircular(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration; time -= 1.0f; return(delta * Mathf.Sqrt(1 - Mathf.Pow(time, 2.0f)) + initial); }
private static OperationalStructBase <T> EaseInOutExponential(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration / 2.0f; if (time <= 1.0f) { return(delta / 2.0f * Mathf.Pow(2.0f, 10.0f * (time - 1.0f)) + initial); } time -= 1.0f; return(delta / 2.0f * (-Mathf.Pow(2.0f, -10.0f * time) + 2.0f) + initial); }
private static OperationalStructBase <T> EaseOutExponential(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { return(delta * (-Mathf.Pow(2.0f, -10.0f * time / duration) + 1.0f) + initial); }
private static OperationalStructBase <T> EaseInExponential(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { return(delta * Mathf.Pow(2.0f, 10.0f * (time / duration - 1.0f)) + initial); }
private static OperationalStructBase <T> EaseInOutSinusoidal(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { return(-delta / 2.0f * (Mathf.Cos(Mathf.PI * time / duration) - 1.0f) + initial); }
private static OperationalStructBase <T> EaseOutQuintic(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration; time -= 1.0f; return(delta * (Mathf.Pow(time, 5.0f) + 1.0f) + initial); }
private static OperationalStructBase <T> EaseInQuartic(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration; return(delta * Mathf.Pow(time, 4.0f) + initial); }
private static OperationalStructBase <T> EaseOutQuadratic(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration; return(-delta * time * (time - 2.0f) + initial); }
private static OperationalStructBase <T> EaseInQuadratic(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { time /= duration; return(delta * time * time + initial); }
private static OperationalStructBase <T> EaseLinear(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { return(delta * time / duration + initial); }
private static OperationalStructBase <T> EaseInBounce(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { return(delta - EaseOutBounce(duration - time, default, delta, duration) + initial);
private static OperationalStructBase <T> EaseOutSinusoidal(float time, OperationalStructBase <T> initial, OperationalStructBase <T> delta, float duration) { return(delta * Mathf.Sin(time / duration * (Mathf.PI / 2.0f)) + initial); }