当前位置:网站首页>Unity的脚本的基础语法(2)-Unity中记录时间
Unity的脚本的基础语法(2)-Unity中记录时间
2022-06-30 12:18:00 【ht_game】
在Unity中记录时间需要用到Time类。
Time类中比较重要的变量为deltaTime(只读)
deltaTime:指完成最后一帧所花费的时间(从最后一帧到当前帧的间隔(以秒为单位)),也即是增量时间
使用:如果想均匀地旋转一个物体,在不考虑帧速率的情况下,可以乘以Time.deltaTime。
//旋转
void Update () {
this.transform.Rotate(10 * Time.deltaTime, 0, 0);
}
//移动
void Update () {
this.transform.Translate(0, 0, 10 * Time.deltaTime);//每秒移动10米
}
如果想每秒增加或者减少一个值,需要乘以Time.deltaTime,同时也要明确在游戏中是需要每秒1个单位还是每帧1个单位的效果。如果是乘以Time.deltaTime,那么游戏对象就会按固定的节奏而不是依赖游戏的帧速率,因此,游戏对象的运动变得更容易控制。
为什么要用Time.deltaTime?
Update()每一秒更新的帧数是不一样的,增量时间是实时变动的,而每一帧都是变动的。增量时间保证了无论帧率是多少,都可以让物体移动定值。
1秒30帧,那么帧量时间就是1/30秒
1秒180帧,那么帧量时间就是1/180秒
总的来说,使用Time.deltaTime可以让物体移动或者旋转指定定值。比如,每秒移动N米
例如
public GameObject gameObject;
void Update () {
Vector3 te = gameObject.transform.position;//获取游戏对象的位置坐标
te.y += 5 * Time.deltaTime;//沿y轴每秒上升5个单位
gameObject.transform.position = te;//设置游戏对象的位置坐标
//这个方法其实和MovePOSiton方法相视
}
如果涉及刚体,可以写在FixedUpdate方法中。在FixedUpdate方法中,如果想每秒增加或者减少一个值,需要乘以Time.fixedDeltaTime。
例如
public GameObject gameObject;
void FixedUpdate()
{
Vector3 te = gameObject.GetComponent<Rigidbody>().transform.position;
te.y += 5 * Time.fixedDeltaTime;
gameObject.GetComponent<Rigidbody>().transform.position = te;
}
边栏推荐
- 市值蒸发650亿后,“口罩大王”稳健医疗,盯上了安全套
- Redis的基本操作的命令
- ECDSA signature verification in crypt
- Two batches of pure milk are unqualified? Michael responded that he was conducting a large-scale screening and sampling inspection of products
- The format of RTSP address of each manufacturer is as follows:
- SuperMap 3D SDKs_ Unity plug-in development - connect data services for SQL queries
- FlinkSQL自定义UDTF使用的四种方式
- Clipboardjs - development learning summary 1
- Hisilicon 3559 developing common sense reserves: a complete explanation of related terms
- 机器学习笔记 - 自相关和偏自相关简介
猜你喜欢
随机推荐
电机控制park变换公式推导
【OpenGL】OpenGL Examples
Videos are stored in a folder every 100 frames, and pictures are transferred to videos after processing
MySQL composite query
[QNX Hypervisor 2.2用户手册]6.2.3 Guest与外部之间通信
Qt读写Excel--QXlsx工作表显示/隐藏状态设置4
Mysql判断计算结果,除以100
Flinksql customizes udatf to implement topn
Sqlserver query code is 936 simplified Chinese GBK. Should I write 936 or GBK?
“\“id\“ contains an invalid value“
Tencent cloud Database Engineer competency certification was launched, and people from all walks of life talked about talent training problems
SuperMap iclient3d for webgl loading TMS tiles
解决numpy.core._exceptions.UFuncTypeError: ufunc ‘add‘ did not contain a loop with signature matchin问题
Scratch drawing square electronic society graphical programming scratch grade examination level 2 true questions and answers analysis June 2022
FlinkSQL自定义UDTF使用的四种方式
Docker安装Mysql8和sqlyong连接报错2058的解决方法[随笔记录]
Flink sql控制台,不识别group_concat函数吗?
视频按每100帧存一个文件夹,处理完再图片转视频
Redis installation on Linux system
LeetCode_栈_中等_227.基本计算器 II(不含括号)








