public void Tick(ITimedService service)
        {
            var values = new ObjectShakeEffect.PingPongValues();

            values.Randomize();
            float timeUntilNextShake = 0;

            while (timePassed >= totalDuration)
            {
                if (timeUntilNextShake < 0)
                {
                    currentShake =
                        ObjectShakeEffect.GetOffset(context, timePassed, values, mode, intensity, dimensions);
                    timeUntilNextShake = 1 / frequency.Evaluate(context, timePassed);
                    values.Toggle();
                }

                timePassed         += Time.deltaTime;
                timeUntilNextShake -= Time.deltaTime;
            }
        }
 private void OnEnable()
 {
     effect = (ObjectShakeEffect)target;
 }