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; }