AudioPitchAndVolumeByVelocity.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. 
  2. // =================================
  3. // Namespaces.
  4. // =================================
  5. using UnityEngine;
  6. // =================================
  7. // Define namespace.
  8. // =================================
  9. namespace MirzaBeig
  10. {
  11. namespace Demos
  12. {
  13. namespace TheLastParticle
  14. {
  15. // =================================
  16. // Classes.
  17. // =================================
  18. //[ExecuteInEditMode]
  19. [System.Serializable]
  20. public class AudioPitchAndVolumeByVelocity : MonoBehaviour
  21. {
  22. // =================================
  23. // Nested classes and structures.
  24. // =================================
  25. // ...
  26. // =================================
  27. // Variables.
  28. // =================================
  29. // ...
  30. public float maxSpeed = 20.0f;
  31. public Vector2 volumeRange = new Vector2(0.5f, 1.0f);
  32. public Vector2 pitchRange = new Vector2(0.5f, 2.0f);
  33. Rigidbody rb;
  34. AudioSource audioSource;
  35. // =================================
  36. // Functions.
  37. // =================================
  38. // ...
  39. void Awake()
  40. {
  41. }
  42. // ...
  43. void Start()
  44. {
  45. rb = GetComponentInParent<Rigidbody>();
  46. audioSource = GetComponent<AudioSource>();
  47. }
  48. // ...
  49. void LateUpdate()
  50. {
  51. float speed = rb.velocity.magnitude;
  52. float lerpTimePosition = speed / maxSpeed;
  53. lerpTimePosition = Mathf.Clamp01(lerpTimePosition);
  54. audioSource.volume = Mathf.Lerp(volumeRange.x, volumeRange.y, lerpTimePosition);
  55. audioSource.pitch = Mathf.Lerp(pitchRange.x, pitchRange.y, lerpTimePosition);
  56. }
  57. // =================================
  58. // End functions.
  59. // =================================
  60. }
  61. // =================================
  62. // End namespace.
  63. // =================================
  64. }
  65. }
  66. }
  67. // =================================
  68. // --END-- //
  69. // =================================