AudioSourceTimeline.cs 768 B

12345678910111213141516171819202122232425262728293031323334
  1. using UnityEngine;
  2. namespace Chronos
  3. {
  4. public class AudioSourceTimeline : ComponentTimeline<AudioSource>
  5. {
  6. private float _pitch;
  7. /// <summary>
  8. /// The pitch that is applied to the audio source before time effects. Use this property instead of AudioSource.pitch, which will be overwritten by the timeline at runtime.
  9. /// </summary>
  10. public float pitch
  11. {
  12. get { return _pitch; }
  13. set
  14. {
  15. _pitch = value;
  16. AdjustProperties();
  17. }
  18. }
  19. public AudioSourceTimeline(Timeline timeline, AudioSource component) : base(timeline, component) { }
  20. public override void CopyProperties(AudioSource source)
  21. {
  22. _pitch = source.pitch;
  23. }
  24. public override void AdjustProperties(float timeScale)
  25. {
  26. component.pitch = pitch * timeScale;
  27. }
  28. }
  29. }