Unity Time类简介及应用
下面是时间体系图:具体方法介绍可查Unity圣典,,
Time 时间管理器:
说明:
● Fixed Timestep: 物理固定帧率.即: FixedUpdate响应事件的刷新帧率
● Maximum Allowed Timestep: [’mæksɪməm] 物理固定帧率更新的最大时间值
● Time Scale: 时间缩放
注:
如果Time Scale被缩小 -> 场景播放镜头变慢(场景中播放速率变慢) -> 播放画面出现卡顿现象
几个常用的变量介绍
Time.time 时间 (会受到时间缩放的影响)
此帧开始的时间(只读)。这是以秒计算到游戏开始的时间。也就是说,从游戏开始到到现在所用的时间。
//利用Time.time实现每隔多少秒做逻辑事情
public float rate = 2f;
private float nextTime = 0.0f;
private int count = 0;
void Update(){
if(Time.time > nextTime){
nextTime = Time.time + rate;
Debug.Log(count++);
}
}
Time.deltaTime 增量时间:
● 以秒计算,完成最后一帧的时间/上一帧的时间(只读)。
● 放在Update()函数中的代码是以帧来执行的.如果我们需要物体的移动以秒来执行.我们需要将物体移动的值乘以Time.deltaTime
● 如果想要一个值根据每帧的变化而变化(增加或减少) ,你应该使用 Time.deltaTime来乘以这个值。这样才能使得变化的效果依赖于单位时间,而不是帧频。这不仅使得游戏的运行独立于帧频,也使得运动的效果符合现实。
● 每秒物体移动10米
void Update(){
float translation = Time.deltaTiem * 10;
translation .Translate(0,0,translation);
}
理解Time.deltaTime:
Time.deltaTime表示上一帧执行的时间,即上一次Update()所执行的时间
在Update中,Time.deltaTime值小了,但是Update()相对于FixedUpdate在1秒内执行的次数就正比增多了
即:在Update()中,不论Time.deltaTime值为多少,经过1秒时间后,相加值都为1
(1/30秒 * 30次Update() = 1秒),(1/60秒 * 60次Update() = 1秒)
应用Time.deltaTime 简例:(计时器,倒计时)
//计时器
//利用Time.deltaTime 实现每隔多少秒做什么事
float timer = 1; //时间器
int count = 0; //计数
void Update(){
time -= Tiem.datleTiem;
if(tiemr <= 0){
tiemr = 1f;
Debug.Log(count++);
}
}
Time.timeScale 时间缩放
传递时间的缩放,这个可以用于慢放,暂停,
1)当timeScale传递时间1.0时和实时时间一样快
2)当timeScale传递时间0.5时比实时时间慢一半
3)当timeScale传递时间为0时游戏暂停
4)当timescale设置为0时,FixedUpdate函数将不会被调用
**注:
scaleTime影响的是Time.time,影响的是时间
不会影响realtimeSinceStartup**
Time 成员变量
1- timeSinceLevelLoad在同一场景中与time值是一样的,当切换场景,这个时间会重新计算
2- 在处理逻辑时使用Update效果更好
3- frameCount记录的是所有的帧数量值
4- realtimeSinceStartup与Time.time一样记录项目运行时间的,不同的是Time.time记录项目运行的时间,而realtimeSinceStartup记录的是所有时间,包括项目暂停时,时间也同样记录
相关文章
- Win10系列:C#应用控件基础6
- Memcache应用场景介绍,说明[zz]
- SSL证书卸载与SSI高级应用
- Qt编写地图综合应用9-行政区划
- APP应用渗透测试思路
- Spring Boot 应用使用 application.yml 和 application.properties 的区别
- 使用java代码获取新浪微博应用的access token
- 云原生应用程序运行时 Kyma 简介
- CloudFoundry上运行的应用远程调试的一些安全考虑
- AI:大力出奇迹?Bigger is better?AI下一代浪潮?预训练大语言模型的简介(起源/目的/概述/技术基础/核心/影响/优缺点/未来趋势)、发展史、模型分类及其对比、案例应用之详细攻略
- Python语言学习:Python语言学习之迭代/递归/OS输入输出/错误&异常处理的简介、案例应用之详细攻略
- NLP之LSA/GloVe:LSA/GloVe的简介、使用方法、案例应用之详细攻略
- AI之HCI:人机交互Human-Computer Interaction的简介、发展历史、案例应用之详细攻略
- DL之CycleGAN:CycleGAN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- DL之YoloV3:Yolo V3算法的简介(论文介绍)、各种DL框架代码复现、架构详解、案例应用等配图集合之详细攻略
- DL之RefineNet:RefineNet和Light-Weight RefineNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介、使用方法、代码实现、案例应用之详细攻略
- ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介、损失函数/代价函数/目标函数之间区别、案例应用之详细攻略
- BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
- Soft:软件开发/软件测试/运维的简介(经验/注意事项)、常用工具、案例应用之详细攻略
- 《Kubernetes网络权威指南》读书笔记 | Kubernetes网络策略:为你的应用保驾护航
- 移动应用性能测试简介
- Logstash add_field 参数应用
- 第16讲:Python多维列表的概念以及应用