FPlaySequenceEvent.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using UnityEngine;
  2. namespace Flux
  3. {
  4. //[FEvent("Sequence/Play Sequence", typeof(FSequenceTrack))]
  5. public class FPlaySequenceEvent : FEvent
  6. {
  7. private FSequence _sequence = null;
  8. [SerializeField]
  9. private int _startOffset = 0;
  10. public int StartOffset { get { return _startOffset; } }
  11. protected override void OnInit()
  12. {
  13. _sequence = Owner.GetComponent<FSequence>();
  14. }
  15. protected override void OnTrigger( float timeSinceTrigger )
  16. {
  17. if( Sequence.IsPlaying && Application.isPlaying )
  18. {
  19. _sequence.Play( _startOffset * _sequence.InverseFrameRate + timeSinceTrigger );
  20. }
  21. }
  22. protected override void OnUpdateEvent( float timeSinceTrigger )
  23. {
  24. _sequence.Speed = Mathf.Sign( Sequence.Speed ) * Mathf.Abs(_sequence.Speed);
  25. }
  26. // protected override void OnUpdateEvent( float timeSinceTrigger )
  27. // {
  28. //// if( !Application.isPlaying )
  29. //// _sequence.SetCurrentTime( StartOffset * Sequence.InverseFrameRate + timeSinceTrigger );
  30. // }
  31. //
  32. // protected override void OnUpdateEventEditor( float timeSinceTrigger )
  33. // {
  34. //// _sequence.SetCurrentTime( StartOffset * Sequence.InverseFrameRate + timeSinceTrigger );
  35. //// _sequence.SetCurrentFrameEditor( _startOffset + framesSinceTrigger );
  36. //// _sequence.SetCurrentFrame( _startOffset + framesSinceTrigger );
  37. // }
  38. protected override void OnStop()
  39. {
  40. _sequence.Stop( true );
  41. }
  42. protected override void OnFinish()
  43. {
  44. _sequence.Pause();
  45. }
  46. protected override void OnPause ()
  47. {
  48. _sequence.Pause();
  49. }
  50. protected override void OnResume()
  51. {
  52. _sequence.Play(_sequence.CurrentTime);
  53. // _sequence.Resume();
  54. }
  55. }
  56. }