FPS游戏框架漫谈第十二天

本文讨论了游戏开发中如何处理时间暂停问题,强调了在PVE战斗、网络相关和动画控制中时间的真实性和暂停策略,提到了Time.time和Time.realTimeSinceStartup的区别以及Time.timeScale对动画的影响。
摘要由CSDN通过智能技术生成

当我们在开发一款游戏的时候,时间在流逝,那么我们游戏内的其实也会流逝,但是就真实世界而言,时间是不会静止的。
但是我们的游戏内对时间就暂停,如果说时间暂停是不是意味着我们游戏内所有的行为都要暂停呢?????
实际情况并非如此,具体就看策划的要求了, 比如有这么个场景 我们在玩PVE打怪, 那么怪是配置多少秒刷一波,如果我们把时间暂停了,那么这个刷怪时间流逝是不是也要暂停,不然就不公平,我们玩家暂停了,怪物还能提前刷怪,甚至已经刷了n波 怪。
上述问题是非常不合理的。
那么??????????什么情况下我们是不需要暂时时间的,比如网络相关,这个是需要真实时间,也就是你过了多少时间就是过了多少时间,比如心跳包的检测,不能因为你客户端其他功能需要把时间暂停了,那么我心跳包就停止检测,你客户端断开连接多久和时间暂停是没有关联的。
那么我们是如何拿到真实时间和暂停之后的时间流逝量的呢
非真实时间:Time.time 这个时间是引擎去统计的,你游戏一运行就开始计算了,同时会受时间缩放因子Time.timeScale的影响,对于暂停而已就是Time.timeScale = 0了。
真实时间:他的获取是Time.realTimeSinceStartup 这个时间的计算是不会把Time.timeScale放入公式当中,即可以看成Time.timeScale = 1
还有一个案例 我们做系统的同学,遇到动画,使用的是NGU中的Tween动画的时候,如果我们时间暂停了,策划要求这个动画也要暂停,但是如果你一个不注意勾选了Ignore TimeScale,很明显就是动画的播放不再受时间缩放因子的影响了,那么动画就无法暂停了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你一身傲骨怎能输

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值