SmoothedFloat.cs 639 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using UnityEngine;
  3. namespace Leap.Unity
  4. {
  5. [Serializable]
  6. public class SmoothedFloat
  7. {
  8. public void SetBlend(float blend, float deltaTime = 1f)
  9. {
  10. this.delay = deltaTime * blend / (1f - blend);
  11. }
  12. public float Update(float input, float deltaTime = 1f)
  13. {
  14. if (deltaTime > 0f && !this.reset)
  15. {
  16. float num = this.delay / deltaTime;
  17. float num2 = num / (1f + num);
  18. this.value = Mathf.Lerp(this.value, input, 1f - num2);
  19. }
  20. else
  21. {
  22. this.value = input;
  23. this.reset = false;
  24. }
  25. return this.value;
  26. }
  27. public float value;
  28. public float delay;
  29. public bool reset = true;
  30. }
  31. }