Unity自主学习(二十八):Time.deltaTime

上次把物件基本的移动以及跳跃都弄出来了,那麽改变物件的位置座标时,都要再额外乘上一个"Time.deltaTime",所以今天打算来解释一下乘上的那个到底是甚麽东西。

那麽我们先了解程序执行时,我们的判断以及改变物件座标的程序都是写在Update的方法里,而Update是每一个画面就会跑一次,也就是每一帧跑一次,而一般我们已fps(Frames Per Second)表示。FPS越高代表每秒跑动的画面就越多,同时游戏画面就越流畅,但每个玩家执行游戏的设备皆不相同,这也代表着每个设备的FPS不同,平板可能为30FPS、电脑可能为120FPS。

这也代表着同样一秒里,使用不同的设备来执行我们的程序,其中Update执行的次数会不同,有的设备一秒只可以跑30次画面,所以Update里面的程序只会执行30次,而有的设备一秒可能可以跑120次画面,那这样Update里面的程序就可以执行120次。

那以这样的情况去跑我们移动物件的程序的话,假设我们的程序是一个Update,物件的座标+100,那一秒只可以跑30次画面的设备,按着按键1秒,物件会前进"100 x 30 = 3000",而一秒可以跑120次画面的设备,按着按键1秒,物件会前进"100 x 120 = 12000",因为设备的不同,仅仅一秒,两个设备的物件移动距离就差了4倍。两者的执行速度就会有差,为了弥补这个缺点,就需要使用到"Time.deltaTime"。

Time.deltaTime在不同设备是不同的数值,以前面的例子来说,他在平板就是1/30,在电脑就是1/120,那只要在乘上这个的话,就可以将多出来的那部分抵销掉了,不论是在甚麽设备运行,物件座标它一秒就是只会+100。

Unity官方的描述及范例:
https://docs.unity3d.com/ScriptReference/Time-deltaTime.html


<<:  Unity自主学习(二十七):物件跳跃

>>:  Unity自主学习(二十九):物件移动错误

裁切,调整大小,旋转

提取ROI 在影像处理中是一个重要技能 像是在行人中要做人脸辨识 就必须找出人脸的位置座标 roi ...

【Day6】窗涵式,n_fft ,hop_length 到底什麽意思啊?

回填之前的坑 在往 Vocoder 迈进之前,我们先回顾一下之前我们在做 melspectrogra...

Day20 ( 中级 ) 拉不走的弹力球

拉不走的弹力球 教学原文参考:拉不走的弹力球 这篇文章会介绍,如何在 Scratch 3 里使用扩充...

Spring Framework X Kotlin Day 8 REST Clients & OpenAPI

GitHub Repo https://github.com/b2etw/Spring-Kotlin...

Day 30: 给之後的时间

Hi all 谢谢KK那边认识到大家,可以一起组读书会、一起参加铁人赛. 铁人赛很烦,因为我去年第一...