Files
2024-11-20 15:21:28 +01:00

62 lines
1.3 KiB
C#

// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
using UnityEngine;
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.Time)]
[Tooltip("Scales time: 1 = normal, 0.5 = half speed, 2 = double speed.")]
public class ScaleTime : FsmStateAction
{
[RequiredField]
[HasFloatSlider(0,4)]
[Tooltip("Scales time: 1 = normal, 0.5 = half speed, 2 = double speed.")]
public FsmFloat timeScale;
[Tooltip("Adjust the fixed physics time step to match the time scale.")]
public FsmBool adjustFixedDeltaTime;
[Tooltip("Repeat every frame. Useful when animating the value.")]
public bool everyFrame;
public override void Reset()
{
timeScale = 1.0f;
adjustFixedDeltaTime = true;
everyFrame = false;
}
public override void OnEnter()
{
DoTimeScale();
if (!everyFrame)
{
Finish();
}
}
public override void OnUpdate()
{
DoTimeScale();
}
void DoTimeScale()
{
Time.timeScale = timeScale.Value;
if (adjustFixedDeltaTime.Value)
{
//TODO: how to get the user set default value?
Time.fixedDeltaTime = 0.02f * Time.timeScale;
}
}
#if UNITY_EDITOR
public override string AutoName()
{
return ActionHelpers.AutoName(this, timeScale);
}
#endif
}
}