Unity中游戏暂停和开始怎么实现?
来源:互联网 发布:淘宝买腾讯会员靠谱吗 编辑:程序博客网 时间:2024/05/22 06:54
(1)Time.timeScale = 0可以暂停游戏,Time.timeScale = 1恢复正常,但这是作用于整个游戏的设置,不单单是当前场景,记得在需要的时候重置回Time.timeScale = 1。当然也可以使用Time.timeScale来做游戏的1倍、2倍整体加速。
(2)timeScale影响的因素:
设置Time.timeScale = 0 将会暂停所有和帧率无关的事情。这些主要是指所有的物理事件和依赖时间的函数、刚体力和速度等,而且FixedUpdate会受到影响,会被暂停(不是Update),即timeScale =0 时将不会调用FixedUpdate函数了。
但是,Update和LateUpdate函数本身的执行是不会受Time.timeScale的影响的。Update是依赖你的机器的,它的调用次数和你的机器渲染一样快慢(一些特殊情况除外);性能高的机器,帧率高,Update函数执行次数也就多。因此,当使用Time.timeScale = 0时,所有和时间有关的事情都被暂停了。因为Time.timeScale为0时,Time.deltaTime将为0。这意味着,如果你使用Time.deltaTime来控制旋转和位移等,那么Time.timeScale = 0也将使这些物体停止运动。所以游戏看起来是被冻结了,但是,我们的游戏仍在渲染,也就是说Update函数仍在执行。
所以Update和LateUpdate这两个方法里面需要自己用代码控制,且可以设定某些地方不会暂停(比如UI动画),弊端是如果想暂停,所有动画相关都要与Time.deltaTime这个字段绑定。
(3)如果游戏暂停以后想在暂停界面上继续播放一些不受Time.timeScale 影响的动画或者粒子特效之类的,那么我们就需要用到Time.realtimeSinceStartup去单独恢复他们,还有声音部分也需要单独恢复timeScale。
(4)以前看到一种实现暂停的方法是放弃Time.deltaTime,自己实现两个函数:OnPauseGame和 OnResumeGame。这种方法扩展性强,缺点是写起来可能比较繁琐。
补充有关于暂停的相关有个帖子还是不错的 http://www.xuanyusong.com/archives/2956
- Unity中游戏暂停和开始怎么实现?
- Unity中游戏暂停和开始怎么实现?
- Unity补充暂停和开始做法
- unity中游戏暂停的问题
- Unity 暂停游戏
- unity游戏暂停
- unity游戏暂停
- 怎么实现下载 实现下载 暂停 又开始下载
- unity中游戏装备数据怎么 建立,存储和读取?
- 在Unity游戏开发中使用暂停的小技巧
- Unity学习之游戏暂停和界面跳转
- 【Unity】关于游戏中的暂停
- AVAudioPlayer 开始和暂停
- Unity应用怎么暂停(Pause)
- Unity 让游戏暂停的方法
- Unity插件 暂停场景中的游戏对象
- Unity游戏暂停,控制时间的设计
- Unity3D——游戏开始与暂停
- 总线地址线的设置
- JMeter初探:一个简单的性能测试
- C语言程序设计(45)
- springmvc用户注册
- .NET + 负载均衡(proxy、Amoeba) + 主从复制 + 读写分离架构
- Unity中游戏暂停和开始怎么实现?
- EXTJS 4 chart图表样式汇总
- 一名3年工作经验的程序员应该具备的技能(写得很好,果断转)
- 【算法】阿里精准推广的核心算法MLR
- java 的基本(内置)数据类型
- train_val.prototxt文件里的data层的type和参数解释
- JS文件中发送请求给后台,附带数组参数可在Action中用List类型接收
- 【Echo的封装】
- 微信小程序 监听手势滑动切换页面