U3D时间

这是我在《游戏架构-核心技术与面试精粹》看的,记录一下~

游戏里的时间会经常用到,比如:人物移动,延迟伤害等
如果一台机器掉帧了,帧率会处于波动状态,需要防止出现与标准帧率不一致的情况

1.真实时间线
代表绝对的时间流逝,是一切时间的参考
不同的设备中得到的结果一定是相同的

对应Unity的:Time.realtimeSinceStartup

2.游戏时间线
当游戏暂停时,游戏时间应该停止
回访战斗录像时候,希望游戏时间快于真实时间
做动作游戏中,还需要控制时间速率忽快忽慢

也可以停止游戏,查看场景中所有物体的动作和特效
按照游戏时间向前1/FPS推动,实现逐帧调试

对应Unity的:
Time.time 获取游戏时间
Time.timeScale 控制游戏时间流逝的速度

3.间隔时间
两帧之间的差值
计算距离的时候,一般都用间隔时间*速度=每秒的位移(不是每帧位移)

逻辑计算频率是固定的
如果游戏时间线缩放变小,游戏变慢,实际单位内运行的逻辑计算次数将增加
为了使最终结果相同,游戏时间线中的间隔时间就会变短,游戏间隔时间与游戏速率流逝成正比

有时还需要使用过去或者当前的间隔时间,来预测物体未来的位置状态,使用平均间隔会更加合理

对应Unity的:
Time.unscaledDeltaTime 真实的时间间隔
Time.deltaTime 游戏间隔时间
Time.smoothDeltaTime 平均的间隔时间、

总结:
应该尽早在不同性能的机器上进行时间相关的测试,防止出现某些逻辑用错时间线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值