• 时间
    • 默认的时间
    • 时间API
      • Time
      • DeltaTime
      • FixedTime
      • TimeSinceLevelLoad
      • FixedDeltaTime
      • MaximumDeltaTime
      • SmoothDeltaTime
      • TimeScale
      • FrameCount
      • RealtimeSinceStartup
      • CaptureFramerate
      • UnscaledDeltaTime
      • UnscaledTime
    • 扩展时间

    时间

    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");