• Unity中的Time.timeScale


    1:设置Time.timeScale为0将会暂停所有和帧率无关的事情,这些主要是指所有的物理事件和依赖时间的函数,刚体力和速度等,FixUpdate会被暂停,因为FixUpdate函数是根据时间来进行更新的。

    2:Update函数本身的执行是不会受Time.TimeScale影响的 Update是依赖机器的,它的调用次数和机器渲染一样快慢,跟Time.TimeScale无关,当Time.TimeScale == 0时 所有跟时间相关的事情都被暂停了,但是游戏仍在渲染,无论Time.TimeScale等于多少,Update和LateUpdate 都会执行

    3:Time.TimeScale会影响Time.time的时间,比如Time.TimeScale = 2时 ,Time.time增长速度也会变成2  , 如果你想取到游戏的实际时间,那么使用Time.timeSinceLevelLoad 就可以,前提是必须在 Awake() 方法以后再取,如果在 Awake() 方法里面取 Time.realtimeSinceStartup 会取出一个错误的值,在 Start 方法里面取的话就正常了。如果游戏暂停以后想在暂停界面上继续播放一些不受 Time.timeScale 影响的动画,那么我们就需要用到 Time.realtimeSinceStartup。

     总结: Time.timeScale 影响的是 Unity 的游戏时间缩放比例。Unity 里面所有跟时间有关系的东西都是根据 timeScale 来演算的。

    参考: 马三大佬的案例https://www.cnblogs.com/msxh/p/6413577.html

  • 相关阅读:
    汉诺塔略写
    第六章实验报告
    第三次实验报告
    第五章 循环结构反思
    第二次实验报告
    第一次实验报告x
    第九章 结构体与共用体
    第八次实验报告
    第7章 数组实验
    第六章 函数和宏定义实验(2)
  • 原文地址:https://www.cnblogs.com/gwen-/p/13913628.html
Copyright © 2020-2023  润新知