private float easeInOutBounceFunction(float start, float end, float value) { end -= start; float d = 1f; if (value < d/2) return easeInBounceFunction(0, end, value*2) * 0.5f + start; else return easeOutBounceFunction(0, end, value*2-d) * 0.5f + end*0.5f + start; }