public IEnumerator tickEffectProgressProperty( Effect effect, float duration, EaseType easeType = EaseType.ExpoOut, bool reverseDirection = false )
{
var start = reverseDirection ? 1f : 0f;
var end = reverseDirection ? 0f : 1f;
var progressParam = effect.Parameters["_progress"];
var elapsed = 0f;
while( elapsed < duration )
{
elapsed += Time.deltaTime;
var step = Lerps.ease( easeType, start, end, elapsed, duration );
progressParam.SetValue( step );
yield return null;
}
}