ScaleGlobalClockTime.cs 824 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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.")]
  7. [HelpUrl("http://ludiq.io/chronos/documentation#Clock.localTimeScale")]
  8. public class ScaleGlobalClockTime : FsmStateAction
  9. {
  10. [RequiredField]
  11. public FsmString globalClockKey;
  12. [RequiredField]
  13. public FsmFloat timeScale;
  14. public bool everyFrame;
  15. public override void Reset()
  16. {
  17. globalClockKey = null;
  18. timeScale = null;
  19. everyFrame = false;
  20. }
  21. public override void OnEnter()
  22. {
  23. DoAction();
  24. if (!everyFrame)
  25. {
  26. Finish();
  27. }
  28. }
  29. public override void OnUpdate()
  30. {
  31. DoAction();
  32. }
  33. private void DoAction()
  34. {
  35. Timekeeper.instance.Clock(globalClockKey.Value).localTimeScale = timeScale.Value;
  36. }
  37. }
  38. }
  39. #endif