private void Update()
 {
     if (currentShake != null)
     {
         if (holdTimer < currentShake.holdLength)
         {
             holdTimer += Time.deltaTime;
         }
         else if (fadeTimer < currentShake.fadeLength)
         {
             currentAmplitude *= currentShake.amplitudeDecay;
             currentFrequency *= currentShake.frequencyDecay;
             fadeTimer        += Time.deltaTime;
         }
         else
         {
             currentAmplitude = 0;
             currentFrequency = 0;
             currentShake     = null;
             holdTimer        = 0;
             fadeTimer        = 0;
         }
         UpdateValues();
     }
 }
 public void Shake(CameraShakeDefinition definition)
 {
     currentShake     = definition;
     currentAmplitude = currentShake.amplitude;
     currentFrequency = currentShake.frequency;
     holdTimer        = 0;
     fadeTimer        = 0;
     UpdateValues();
 }