mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-16 08:25:20 +01:00
74 lines
1.2 KiB
C#
74 lines
1.2 KiB
C#
using CinemaDirector.Helpers;
|
|
using UnityEngine;
|
|
|
|
namespace CinemaDirector
|
|
{
|
|
[CutsceneItem("Time", "Time Scale Curve", new CutsceneItemGenre[] { CutsceneItemGenre.GlobalItem })]
|
|
public class TimeScaleCurveAction : CinemaGlobalAction, IRevertable
|
|
{
|
|
public AnimationCurve Curve;
|
|
|
|
[SerializeField]
|
|
private RevertMode editorRevertMode;
|
|
|
|
[SerializeField]
|
|
private RevertMode runtimeRevertMode;
|
|
|
|
private float previousScale;
|
|
|
|
public RevertMode EditorRevertMode
|
|
{
|
|
get
|
|
{
|
|
return editorRevertMode;
|
|
}
|
|
set
|
|
{
|
|
editorRevertMode = value;
|
|
}
|
|
}
|
|
|
|
public RevertMode RuntimeRevertMode
|
|
{
|
|
get
|
|
{
|
|
return runtimeRevertMode;
|
|
}
|
|
set
|
|
{
|
|
runtimeRevertMode = value;
|
|
}
|
|
}
|
|
|
|
public RevertInfo[] CacheState()
|
|
{
|
|
return new RevertInfo[1]
|
|
{
|
|
new RevertInfo(this, typeof(Time), "timeScale", Time.timeScale)
|
|
};
|
|
}
|
|
|
|
public override void Trigger()
|
|
{
|
|
previousScale = Time.timeScale;
|
|
}
|
|
|
|
public override void UpdateTime(float time, float deltaTime)
|
|
{
|
|
if (Curve != null)
|
|
{
|
|
Time.timeScale = Curve.Evaluate(time);
|
|
}
|
|
}
|
|
|
|
public override void End()
|
|
{
|
|
}
|
|
|
|
public override void ReverseTrigger()
|
|
{
|
|
Time.timeScale = previousScale;
|
|
}
|
|
}
|
|
}
|