ScaleClockTime.cs 888 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #if CHRONOS_PLAYMAKER
  2. using HutongGames.PlayMaker;
  3. namespace Chronos.PlayMaker
  4. {
  5. [ActionCategory("Chronos")]
  6. [Tooltip("Sets the time scale on a clock.")]
  7. [HelpUrl("http://ludiq.io/chronos/documentation#Clock.localTimeScale")]
  8. public class ScaleClockTime : ChronosComponentAction<Clock>
  9. {
  10. [RequiredField]
  11. [CheckForComponent(typeof(Clock))]
  12. public FsmOwnerDefault gameObject;
  13. [RequiredField]
  14. public FsmFloat timeScale;
  15. public bool everyFrame;
  16. public override void Reset()
  17. {
  18. gameObject = null;
  19. timeScale = null;
  20. everyFrame = false;
  21. }
  22. public override void OnEnter()
  23. {
  24. DoAction();
  25. if (!everyFrame)
  26. {
  27. Finish();
  28. }
  29. }
  30. public override void OnUpdate()
  31. {
  32. DoAction();
  33. }
  34. private void DoAction()
  35. {
  36. if (!UpdateCache(Fsm.GetOwnerDefaultTarget(gameObject))) return;
  37. clock.localTimeScale = timeScale.Value;
  38. }
  39. }
  40. }
  41. #endif