public float InOut(float time) { switch (type) { case AnimationEasingType.Linear: return time; case AnimationEasingType.Quad: case AnimationEasingType.Cube: case AnimationEasingType.Quart: case AnimationEasingType.Quint: case AnimationEasingType.Sine: case AnimationEasingType.Expo: case AnimationEasingType.Circ: case AnimationEasingType.Bounce: case AnimationEasingType.Elastic: return EasingHelper.ElasticInOut(this, time); case AnimationEasingType.Back: { time *= 2f; if (time < 1f) { return 0.5f * (time * time * ((s2 + 1f) * time - s2)); } else { time -= 2f; return 0.5f * (time * time * ((s2 + 1f) * time + s2) + 2f); } } case AnimationEasingType.Spring: return EasingHelper.Spring(time); } return time; }
public float In(float time) { switch (type) { case AnimationEasingType.Linear: return time; case AnimationEasingType.Quad: return (time * time); case AnimationEasingType.Cube: return (time * time * time); case AnimationEasingType.Quart: return Mathf.Pow(time, 4f); case AnimationEasingType.Quint: return Mathf.Pow(time, 5f); case AnimationEasingType.Sine: return Mathf.Sin((time - 1f) * (Mathf.PI / 2f)) + 1f; case AnimationEasingType.Expo: return Mathf.Pow(2f, 10f * (time - 1f)); case AnimationEasingType.Circ: return (-1f * Mathf.Sqrt(1f - time * time) + 1f); case AnimationEasingType.Back: return time * time * ((s + 1f) * time - s); case AnimationEasingType.Bounce: return 1f - Out(1f - time); case AnimationEasingType.Elastic: return EasingHelper.Elastic(time, EasingType.In); case AnimationEasingType.Spring: return EasingHelper.Spring(time); } return time; }
public float Out(float time) { switch (type) { case AnimationEasingType.Linear: return time; case AnimationEasingType.Quad: return (time * (time - 2f) * -1f); case AnimationEasingType.Cube: return (Mathf.Pow(time - 1f, 3f) + 1f); case AnimationEasingType.Quart: return (Mathf.Pow(time - 1f, 4f) - 1f) * -1f; case AnimationEasingType.Quint: return (Mathf.Pow(time - 1f, 5f) + 1f); case AnimationEasingType.Sine: return Mathf.Sin(time * (Mathf.PI / 2f)); case AnimationEasingType.Expo: return (-1f * Mathf.Pow(2f, -10f * time) + 1f); case AnimationEasingType.Circ: return Mathf.Sqrt(1f - Mathf.Pow(time - 1f, 2f)); case AnimationEasingType.Back: time = time - 1f; return (time * time * ((s + 1f) * time + s) + 1f); case AnimationEasingType.Bounce: { if (time < (1f / 2.75f)) { return (7.5625f * time * time); } else if (time < (2f / 2.75f)) { time -= (1.5f / 2.75f); return (7.5625f * time * time + 0.75f); } else if (time < (2.5f / 2.75f)) { time -= (2.25f / 2.75f); return (7.5625f * time * time + 0.9375f); } else { time -= (2.625f / 2.75f); return (7.5625f * time * time + 0.984375f); } } case AnimationEasingType.Elastic: return EasingHelper.Elastic(time, EasingType.Out); case AnimationEasingType.Spring: return EasingHelper.Spring(time); } return time; }