调整Time.timeScale的影响。

1.timeScale不会影响Update和LateUpdate的执行速度。

2.FixedUpdate是根据时间来的,所以timeScale只会影响FixedUpdate的速度。

3.Update和LateUpdate不是不受影响吗?那怎么就暂停游戏了呢?Update和LateUpdate并没有停,依然在渲染,只是你的代码中依赖于Time.deltaTime的逻辑将会被停掉了,因为Time.deltaTime = 0了。所以游戏看起来是被冻结了。

细说

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

  但是,Update 函数本身的执行是不会受 Time.timeScale 的影响的。Update 是依赖你的机器的,它的调用次数和你的机器渲染一样快慢(一些特殊情况除外);性能高的机器,帧率高,Update 函数执行次数也就多。因此,当使用 Time.timeScale = 0 时,游戏看起来是被冻结了,这是因为所有和时间有关的事情都被暂停了。但是,我们的游戏仍在渲染,也就是说 Update 函数仍在执行。无论 Time.timeScale 等于多少,Update 和 LateUpdate 都会去执行。所有的动画都是基于时间来的,因为Time.timeScale = 0了,所以 Time.time 也就不会在变化了。当 Time.timeScale 为 0 时,Time.deltaTime 将为 0。这意味着,如果你使用 Time.deltaTime 来控制旋转和位移等,那Time.timeScale = 0 也将使这些物体停止运动。

如果游戏暂停以后想在暂停界面上继续播放一些不受 Time.timeScale 影响的动画,那么我们就需要用到 Time.realtimeSinceStartup。

总结  

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

Time.timeScale影响的是Unity的游戏时间缩放比例。Unity里面所有跟时间有关系的东西都是根据timeScale来演算的。仔细想想现在的手游就是个 动画 和 粒子技能特效 还有UI位移特效,所以改他们的速度直接用Time.timeScale就可以完成。

我们如果想暂停游戏的话,Time.timeScale = 0 可以暂停游戏,Time.timeScale = 1 恢复正常,但这是作用于整个游戏的设置,不单单是当前场景,记得在需要的时候重置回Time.timeScale = 1。当然也可以使用Time.timeScale来做游戏的1倍、2倍整体加速。

Unity Time.timeScale相关推荐

  1. Unity Time.timeScale控制播放声音放慢

    unity声音一般是不跟Time.timeScale进行变化 AudioSource pitch 倍速播放 默认=1可以减慢和加快 而且这个可以在播放中或者播放前设置,都会生效 例如杀死有些怪物有爆炸 ...

  2. Unity的timeScale影响范围

    刚开始使用Unity,在照着教程做弹球游戏,设置了通过终点和跳下跑道两边两种终止情况,发现小球在触发游戏终止条件的时候并没停止,确切的说是左右方向的运动停止了,但还在向前运动. 在网上搜了下这个问题, ...

  3. 【Unity】Obi插件系列(一)—— 总览、Actors与Solvers

    链接:https://pan.baidu.com/s/1Q9OiM_nwMyeApEhEzsCemw 提取码:1234 Obi框架 Obi是一个基于粒子的Unity物理学插件的集合.Obi的内容一切都 ...

  4. 详解Unity中Time类的用法与深入探究

    前言 在游戏世界中,时间无疑是最为重要的参数,它是游戏世界能否正常运转的关键.一旦它出错,轻则卡顿,重则游戏世界崩坏.在使用Unity引擎创造的世界中,Time类无疑是必须要掌握的一个类,它是控制时间 ...

  5. DOTween的一些基本用法

    说明:参照Siki学院Andy老师的课程整理的关于DOTween的一些比较常用的方法,再次感谢老师的讲解 适合看的人呢:稍微知道这个插件是干嘛的就行O(∩_∩)O,至少我觉得是 由于前面有些没有记,也 ...

  6. Unity下利用 timeScale和 unscaledDeltaTime实现部分静帧

    话题铺垫 看图说话 想必用Unity开发的朋友们都知道一个知识点,Time.timeScale 用于控制整个游戏运行时的时间缩放,使用它可以调整时间的流动速度,设置为0时间静默,设置为1时间按照我们真 ...

  7. Unity如何在Time.timeScale=0暂停游戏后继续计时

    Unity如何在Time.timeScale=0暂停游戏后继续计时 最近,做一款关于跑酷的小游戏,在角色死亡后,将游戏暂停. Time.timeScale = 0; 然后,想在游戏暂停后,有5秒的倒计 ...

  8. Unity Animator不受Time.TimeScale影响

    1.代码实现: private Animator anim:private void Start() {anim=GetComponent<Animator>();anim.updateM ...

  9. Unity关于Time.timeScale游戏暂停

    游戏暂停一般我会使用Time.timeScale = 0,我把游戏暂停理解为和切后台操作是一个意思,都应该停止当前游戏行为.但是这并不表明update和fixUpdate就不运行了. Time.tim ...

最新文章

  1. scrum 敏捷开发
  2. 数据库系统工程师考点分析
  3. 网站开发综合技术 HTML
  4. 中国三大运营商发声!要求纽交所复议退市决定
  5. 小牛485通讯原理_让你秒懂智能电表工作原理及抄表原理
  6. Nhibernate中Unexpected row count的一种解决办法
  7. 函数防抖debounce和节流throttle
  8. x86_64的debian(wheezy)下使用qemu和busybox运行linux
  9. 【渝粤题库】陕西师范大学209016《管理心理学》作业
  10. 麻省理工18年春软件构造课程阅读10“抽象数据类型”
  11. 无pygame写一个python贪吃蛇
  12. spss实现主成分分析
  13. CRM系统更换服务器,CRM系统三种常见安装实施解决方式
  14. 深度学习与卷积神经网络
  15. 转未来10年35项最值得你期待的技术
  16. OneClock 不息屏的极简时钟,不仅仅是翻页时钟那么简单!
  17. C程序设计语言 特别版 pdf
  18. 极速前进——DPDK GRO/GSO的转发性能提升实例
  19. linux系统查看IP地址,不显示IP地址或者只显示127.0.0.1
  20. 大学生变身建筑工人:在家隔离的美国学生们,正在Minecraft中复现一座座大学校园...

热门文章

  1. hdu3338——建图+最大流
  2. 32位操作系统寻址范围与支持的最大内存空间
  3. 闪电网络白皮书(百度网盘地址下载)
  4. [FROM WOJ]#4764 子矩阵
  5. 【蓝桥杯-棋盘放麦子】
  6. VBA Scripting.Dictionary常用方法
  7. 当数学老师和软件测试,狸米老师app评测:小学数学老师布置作业的神器
  8. input选择并上传视频、在不同手机的兼容问题
  9. 3.3 string类简介
  10. 今天开始写android的照片浏览器(一)至返回所有图片文件