104 lines
1.9 KiB
C#
104 lines
1.9 KiB
C#
// (c) Copyright HutongGames, LLC 2010-2013. All rights reserved.
|
|
|
|
using UnityEngine;
|
|
|
|
namespace HutongGames.PlayMaker.Actions
|
|
{
|
|
[ActionCategory(ActionCategory.Time)]
|
|
[Tooltip("Gets various useful Time measurements.")]
|
|
public class GetTimeInfo : FsmStateAction
|
|
{
|
|
public enum TimeInfo
|
|
{
|
|
DeltaTime,
|
|
TimeScale,
|
|
SmoothDeltaTime,
|
|
TimeInCurrentState,
|
|
TimeSinceStartup,
|
|
TimeSinceLevelLoad,
|
|
RealTimeSinceStartup,
|
|
RealTimeInCurrentState
|
|
}
|
|
|
|
public TimeInfo getInfo;
|
|
|
|
[RequiredField]
|
|
[UIHint(UIHint.Variable)]
|
|
public FsmFloat storeValue;
|
|
|
|
public bool everyFrame;
|
|
|
|
public override void Reset()
|
|
{
|
|
getInfo = TimeInfo.TimeSinceLevelLoad;
|
|
storeValue = null;
|
|
everyFrame = false;
|
|
}
|
|
|
|
public override void OnEnter()
|
|
{
|
|
DoGetTimeInfo();
|
|
|
|
if (!everyFrame)
|
|
{
|
|
Finish();
|
|
}
|
|
}
|
|
|
|
public override void OnUpdate()
|
|
{
|
|
DoGetTimeInfo();
|
|
}
|
|
|
|
void DoGetTimeInfo()
|
|
{
|
|
switch (getInfo)
|
|
{
|
|
|
|
case TimeInfo.DeltaTime:
|
|
storeValue.Value = Time.deltaTime;
|
|
break;
|
|
|
|
case TimeInfo.TimeScale:
|
|
storeValue.Value = Time.timeScale;
|
|
break;
|
|
|
|
case TimeInfo.SmoothDeltaTime:
|
|
storeValue.Value = Time.smoothDeltaTime;
|
|
break;
|
|
|
|
case TimeInfo.TimeInCurrentState:
|
|
storeValue.Value = State.StateTime;
|
|
break;
|
|
|
|
case TimeInfo.TimeSinceStartup:
|
|
storeValue.Value = Time.time;
|
|
break;
|
|
|
|
case TimeInfo.TimeSinceLevelLoad:
|
|
storeValue.Value = Time.timeSinceLevelLoad;
|
|
break;
|
|
|
|
case TimeInfo.RealTimeSinceStartup:
|
|
storeValue.Value = FsmTime.RealtimeSinceStartup;
|
|
break;
|
|
|
|
case TimeInfo.RealTimeInCurrentState:
|
|
storeValue.Value = FsmTime.RealtimeSinceStartup - State.RealStartTime;
|
|
break;
|
|
|
|
default:
|
|
storeValue.Value = 0f;
|
|
break;
|
|
}
|
|
}
|
|
|
|
#if UNITY_EDITOR
|
|
public override string AutoName()
|
|
{
|
|
return "GetTimeInfo : " + getInfo + " > " + ActionHelpers.GetValueLabel(storeValue);
|
|
}
|
|
#endif
|
|
|
|
}
|
|
} |