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