ScaleGlobalClockTimeSmoothly.cs 828 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #if CHRONOS_PLAYMAKER
  2. using HutongGames.PlayMaker;
  3. namespace Chronos.PlayMaker
  4. {
  5. [ActionCategory("Chronos")]
  6. [Tooltip("Sets the time scale on a global clock smoothly over time.")]
  7. [HelpUrl("http://ludiq.io/chronos/documentation#Clock.LerpTimeScale")]
  8. public class ScaleGlobalClockTimeSmoothly : FsmStateAction
  9. {
  10. [RequiredField]
  11. public FsmString globalClockKey;
  12. [RequiredField]
  13. public FsmFloat timeScale;
  14. [RequiredField]
  15. public FsmFloat duration;
  16. public bool steady;
  17. public override void Reset()
  18. {
  19. globalClockKey = null;
  20. timeScale = null;
  21. duration = null;
  22. steady = false;
  23. }
  24. public override void OnEnter()
  25. {
  26. DoAction();
  27. }
  28. private void DoAction()
  29. {
  30. Timekeeper.instance.Clock(globalClockKey.Value).LerpTimeScale(timeScale.Value, duration.Value, steady);
  31. }
  32. }
  33. }
  34. #endif