时间

CatLib时间组件允许建立自己独立的时间体系。

默认的时间

默认的时间是基于Unity的时间的简单包装。

时间API

下述内容的描述是基于默认时间的,如果使用了扩展时间,其意义可能发生变化。

Time

从游戏开始到现在所用的时间(秒)

var time = timeManager.Default.Time;

DeltaTime

上一帧到当前帧的时间(秒)

var deltaTime = timeManager.Default.DeltaTime;

FixedTime

游戏开始到现在的时间(秒)

通过固定时间更新

var fixedTime = timeManager.Default.FixedTime;

TimeSinceLevelLoad

从当前场景开始到目前为止的时间(秒)

var timeSinceLevelLoad = timeManager.Default.TimeSinceLevelLoad;

FixedDeltaTime

固定帧的更新时间

var fixedDeltaTime = timeManager.Default.FixedDeltaTime;
timeManager.Default.FixedDeltaTime = 0.2f;

MaximumDeltaTime

能获取的最大帧与帧之间的更新时间

var maximumDeltaTime = timeManager.Default.MaximumDeltaTime;

SmoothDeltaTime

平稳的更新时间,根据前N帧的加权平均值

var smoothDeltaTime = timeManager.Default.SmoothDeltaTime;

TimeScale

时间缩放系数

var timeScale = timeManager.Default.TimeScale;
timeManager.Default.TimeScale = 0.5f;

FrameCount

从游戏开始到目前为止的总帧数

var frameCount = timeManager.Default.FrameCount;

RealtimeSinceStartup

从游戏开始到目前为止的总时间(哪怕时间缩放系数为0也会增长)

var realtimeSinceStartup = timeManager.Default.RealtimeSinceStartup;

CaptureFramerate

每秒的帧率

var captureFramerate = timeManager.Default.CaptureFramerate;
timeManager.Default.CaptureFramerate = 30;

UnscaledDeltaTime

不计算时间缩放系数的帧与帧之间的更新时间。

var unscaledDeltaTime = timeManager.Default.UnscaledDeltaTime;

UnscaledTime

不考虑时间缩放系数,从游戏开始到目前为止的总时间

var unscaledTime = timeManager.Default.UnscaledTime;

扩展时间

您可以通过Extend()方法拓展出新的时间。

timeManager.Extend(()=>
{
return new UnityTime();
},"NewTime");

通过Get()可以获得您拓展的时间。

var timeSystem = timeManager.Get("NewTime");