public IEnumerator ChromaticAberr(float duration, float biasTowardEnd)
    {
        float timer = 0;

        biasTowardEnd = Mathf.Clamp01(biasTowardEnd);
        Debug.Log("Bias: " + biasTowardEnd);
        float rampUpDuration   = duration * (1 - biasTowardEnd);
        float rampDownDuration = duration * biasTowardEnd;


        ChromaticAberration chromComp = null;

        Debug.Log(volumeProfile.ToString());
        foreach (VolumeComponent component in volumeProfile.components)
        {
            if (component.GetType() == typeof(ChromaticAberration))
            {
                Debug.Log("Is chromatic aberration");
                chromComp = (ChromaticAberration)component;
                chromComp.intensity.Override(1f);
            }
        }

        while (timer < rampUpDuration)
        {
            timer += Time.deltaTime;

            if (chromComp == null)
            {
                timer += duration;
                yield return(null);
            }

            float lerpT = Mathf.InverseLerp(0, rampUpDuration, timer);

            chromComp.intensity.Override(lerpT);

            yield return(new WaitForSeconds(0f));
        }

        timer = 0;
        while (timer < rampDownDuration)
        {
            timer += Time.deltaTime;

            if (chromComp == null)
            {
                timer += duration;
                yield return(null);
            }

            float lerpT = Mathf.InverseLerp(rampDownDuration, 0, timer);

            chromComp.intensity.Override(lerpT);

            yield return(new WaitForSeconds(0f));
        }

        yield return(null);
    }