/// <summary>
        /// The coroutine responsible for the actual shaking of the camera
        /// </summary>
        /// <param name="shakeSettings">The seetings to shake the camera on</param>
        IEnumerator DoCameraShake(CameraShakeSettings shakeSettings)
        {
            noise.m_AmplitudeGain = shakeSettings.shakeAmplitude;
            noise.m_FrequencyGain = shakeSettings.shakeFrequency;
            noise.m_PivotOffset   = shakeSettings.pivotOffset;

            yield return(new WaitForSeconds(shakeSettings.shakeDuration));

            noise.m_AmplitudeGain = 0;
            noise.m_FrequencyGain = 0;
            noise.m_PivotOffset   = Vector3.zero;
        }
 /// <summary>
 /// Shake the camera upon a public function
 /// </summary>
 /// <param name="shakeSettings">The seetings to shake the camera on</param>
 public void Shake(CameraShakeSettings shakeSettings)
 {
     StartCoroutine(DoCameraShake(shakeSettings));
 }