时间

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

默认的时间

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

时间API

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

Time

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

  1. var time = timeManager.Default.Time;

DeltaTime

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

  1. var deltaTime = timeManager.Default.DeltaTime;

FixedTime

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

通过固定时间更新

  1. var fixedTime = timeManager.Default.FixedTime;

TimeSinceLevelLoad

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

  1. var timeSinceLevelLoad = timeManager.Default.TimeSinceLevelLoad;

FixedDeltaTime

固定帧的更新时间

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

MaximumDeltaTime

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

  1. var maximumDeltaTime = timeManager.Default.MaximumDeltaTime;

SmoothDeltaTime

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

  1. var smoothDeltaTime = timeManager.Default.SmoothDeltaTime;

TimeScale

时间缩放系数

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

FrameCount

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

  1. var frameCount = timeManager.Default.FrameCount;

RealtimeSinceStartup

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

  1. var realtimeSinceStartup = timeManager.Default.RealtimeSinceStartup;

CaptureFramerate

每秒的帧率

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

UnscaledDeltaTime

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

  1. var unscaledDeltaTime = timeManager.Default.UnscaledDeltaTime;

UnscaledTime

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

  1. var unscaledTime = timeManager.Default.UnscaledTime;

扩展时间

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

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

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

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