Time类解析

来源:互联网 发布:热敏标签打印软件 编辑:程序博客网 时间:2024/04/30 03:56


Time.timeScale 表示游戏时间对物理时间的缩放比例,用于控制物理引擎运动和动画的速度。等于0时可以实现游戏暂停功能。

Time.deltaTime,,Time.time,Time.fixedDeltatime ,Time.fixedTime 都是被Time.timeScale缩放物理时间后的游戏时间。


可以在Eidt - >Project Settings - Times 或者代码中 修改 timeScale 和 fixedDeltatime


比如Time.timeScale = 2的话,可以这样理解 ,现在Time.fixedTime  = (原来Time.fixedTime) * 2 ,那么Time.time的增长速度也会变成2倍速度,就是物理时间的一秒相当于游戏世界中的两秒。


Time.time是从程序开始执行到游戏时间,Time.deltaTime上一帧完成的游戏时间Time.fixedTime表示FixedUpdate已经执行游戏时间,而Time.fixedDeltatime是一个固定的游戏时间增量除了fixedDeltatime其他3个值都是只读的,可以通过fixedDeltatime来改变FixedUpdate的跟新速率。


Time.realtimeSinceStartup 游戏开始执行的现在的物理时间
Time.timeSinceLevelLoad 游戏场景开始的到现在的游戏时间。

Time.timeScale越大,Time.deltaTime越大 Time.time增长速度越快,FixedUpdate执行间隔的物理时间越短。以保证每fixedDeltatime游戏时间执行一次FixedUpdate。反之亦然。


改变Time.timeScale, fixedDeltatime 不改变,Update执行间隔的物理时间不变。Update速度与fps有关。在每帧执行以后一定会执行Update方法。





void Update () {
        Debug.Log("在Update中执行");
        Debug.Log("time:"+Time.time);
        Debug.Log("deltatime"+Time.deltaTime);
        Debug.Log("fixedtime:"+Time.fixedTime);
        Debug.Log("fixedDeltatimetime:" + Time.fixedDeltaTime); 
}
    void FixedUpdate()
    {
        Debug.Log("在fixedUpdate中执行");
        Debug.Log("time:" + Time.time);
        Debug.Log("deltatime" + Time.deltaTime);
        Debug.Log("fixedtime:" + Time.fixedTime);
        Debug.Log("fixedDeltatimetime:" + Time.fixedDeltaTime); 
    }

0 0
原创粉丝点击