Unity类库--- Time类(24个变量)详细解释

详解Unity中Time类的用法与深入探究 在游戏世界中,时间无疑是最为重要的参数,它是游戏世界能否正常运转的关键。一旦它出错,轻则卡顿,重则游戏世界崩坏。在使用Unity引擎创造的世界中,Time类无疑是必须要掌握的一个类,它是控制时间的关键,是造物主最为重要的权柄,有了它,我们就可以肆意的玩弄我们所创造的游戏世界,一言万年。 阅读详情
AI摘要

本文是关于Unity类库中Time类的学习笔记,详细解释了Time类的24个静态变量。这些变量可用于测量和控制游戏内的时间流逝,包括获取游戏运行时间、帧间时间差、控制时间流速等,对初学者有一定参考价值。

系列文章目录

Unity类库— Time类(24个变量)详细解释



前言

Time类:用于测量和控制游戏内的时间流逝,包括获取游戏运行时间、帧间时间差、控制时间流速以及实现游戏的暂停和恢复等。
这是我的学习笔记,记载的是Time类(24个变量)的用法,不能保证完全准确但是初学者可以参考一下。


静态变量

1.Time.captureDeltaTime

用于在捕获帧时设置捕获的时间间隔。这个属性通常用于录制帧或进行特定的帧捕获操作。这个属性的作用就是拿来做录屏功能的(通过设置帧与帧的间隔来截取每帧的图片再通过图片和其他软件来做出视频),没有录屏需求的话不要轻易在运行时设置该属性,因为它会改变Time.deltaTime的值从而影响需要使用Time.deltaTime的操作。
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
设置Time.captureDeltaTime后,虽然会让Time.deltaTime等于设置后的值,但是FPS的值不是由你设置的值所决定的,FPS的值受硬件与场景决定。
请添加图片描述
请添加图片描述
请添加图片描述
运行游戏后等待1秒然后关闭运行,在Asset中右键刷新,此时Asset中会创建出一个名为Screenshots的文件夹,里面有着0000~0025编号的图片,即一秒捕获25张图片。
解释:
请添加图片描述
请添加图片描述
这是folder的值。
请添加图片描述
请添加图片描述
请添加图片描述

2.Time.captureFramerate

用于设置游戏在录制模式下的帧率的属性,通过设置 Time.captureFramerate 来控制录制游戏的帧率,特别是在录制游戏过程中希望固定帧率的情况下非常有用。它就是Time.captureDeltaTime的倒数,表示一秒希望录多少帧。
请添加图片描述
请添加图片描述
Time.captureFramerate与Time.captureDeltaTime是倒数关系。
请添加图片描述
Time.captureDeltaTime=0.04f;与Time.captureFramerate = 25;完全等价。

3.Time.deltaTime

用于获取上一帧与当前帧之间的时间间隔的属性。它的单位是秒。Time.deltaTime 的主要作用是确保基于时间的操作在不同帧率下都能一致进行,例如移动物体、动画播放等。

请添加图片描述
Time.deltaTime一般是放在Update()方法中的
请添加图片描述
当把timeScale设为0后Time.deltaTime就会变成0,则在Update()中使用
Time.deltaTime的函数都会停止。
请添加图片描述
请添加图片描述
当把timeScale设为2后Time.deltaTime就会变大。

4.Time.fixedDeltaTime

表示物理系统更新的固定时间步长。它的默认值通常是 0.02 秒,也就是每秒 50 次更新。与 Time.deltaTime 不同,Time.fixedDeltaTime 专门用于物理更新,而不是每帧更新。当Time.timeScale=1时Time.fixedDeltaTime的值就是FixedUpdate()函数的调用间隔;当Time.timeScale不等于1时,Time.fixedDeltaTime/Time.timeScale的值就是FixedUpdate()函数的调用间隔。

请添加图片描述
请添加图片描述
请添加图片描述
它是一个固定值。
请添加图片描述
请添加图片描述
请添加图片描述
你可以对它的值进行代码设定,运行时来到Project Settings就会发现它由0.02变为0.01,结束运行它就会回到0.02。你也可以直接在Project Settings中来设置。
请添加图片描述
请添加图片描述
默认每隔0.02s调用一次FixedUpdate()方法。

请添加图片描述
请添加图片描述
此时每隔1.2s调用一次FixedUpdate()方法。

请添加图片描述
请添加图片描述
当你把timeScale设置为0时,FixedUpdate()只会被调用一次就被停止调用了。但是此时fixedDeltaTime的值时会保持不变的还是0.02。

请添加图片描述
请添加图片描述
当我把Time.timeScale改为2时,Time.fixedDeltaTime不会变,而Time.fixedTime增速变为2倍,这是因为FixedUpdate()的调用时间间隔为Time. fixedDeltaTime/Time.timeS
cale,它变短了则增速变快。

5.Time.fixedTime

它就是Time.fixedDeltaTime的累加值。它代表了固定时间步长(Time.fixedDeltaTime)的累积时间。
请添加图片描述
请添加图片描述
运行游戏,你会发现两个日志的增幅为0.02s即Time.fixedDeltaTime
来更新的。
请添加图片描述
请添加图片描述
当fixedDeltaTime被设置为1时,fixedTime就会以1开始递增。

请添加图片描述
请添加图片描述
当timeScale为0时,fixedTime便会停止。
请添加图片描述
当timeScale为2时,fixedTime增速变为2倍。

6.Time.fixedTimeAsDouble

类似于 Time.fixedTime,但返回的是一个双精度浮点数 (double),这可以提供更高的时间精度。
请添加图片描述
请添加图片描述
请添加图片描述
就是单纯提高了精度。

7.Time.fixedUnscaledDeltaTime

它是只读属性,它的值等于Time.fixedDeltaTime除Time.timeScale。
请添加图片描述

8.Time.fixedUnscaledTime

这个值就是Time.fixedUnscaledDeltaTime的累加值,但是它是从点击开始按钮就开始计时了。
请添加图片描述
请添加图片描述
因为timeScale为1,则fixedUnscaledDeltaTime为0.02,因此上面的数都以0.02递增。
请添加图片描述
请添加图片描述
因为timeScale为0.5,则fixedUnscaledDeltaTime为0.04,因此上面的数都以0.04递增。
补充:
(1) Time.fixedDeltaTime的值不会受timeScale的值影响。
(2) FixedUpdate()的调用间隔=Time.fixedDeltaTime/Time.timeScale。
(3) fixedTime = Time.fixedDeltaTime 的累加值。
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
当修改timeScale时并不会影响Time.fixedTime的增加值,只会影响它的增速而已。

9.Time.fixedUnscaledTimeAsDouble

请添加图片描述
请添加图片描述
它是Time.fixedUnscaledTime的更精确形式。

10.Time.frameCount

它表示自游戏开始以来已渲染的帧数。
请添加图片描述
请添加图片描述
注意: Time.timeScale 不会影响 Time.frameCount 的增长速度,因为它只改变游戏时间的流速,而帧渲染频率是由硬件性能和帧率决定的。即使 Time.timeScale = 0,游戏时间暂停,但帧渲染仍然继续,Update 仍然会被调用,Time.frameCount 也会继续增加。

11.Time.inFixedTimeStep

用于检查当前的代码执行是否处于 FixedUpdate 的执行期间内。

请添加图片描述
请添加图片描述
请添加图片描述

12.Time.maximumDeltaTime

用于限制单个帧的最大时间步长。这在防止游戏在低帧率情况下产生太大的物理步长方面非常有用。
请添加图片描述
请添加图片描述
它一般在0.003左右。
请添加图片描述
请添加图片描述
在你设置最大帧时间步长后,Time.deltaTime的值不是贴着0.026而是明显低于0.026,但是绝对不会超过0.026。

13.Time.maximumParticleDeltaTime

它用于限制粒子系统在单帧内可以模拟的最大时间步长。这在保持粒子系统仿真的稳定性和性能方面非常有用。
请添加图片描述
请添加图片描述
请添加图片描述

14.Time.realtimeSinceStartup

它返回从点击运行时到当前游戏运行的实际时间(以秒为单位),它不受Time.timeScale值影响。
请添加图片描述
请添加图片描述

15.Time.realtimeSinceStartupAsDouble

它返回从点击运行时到当前游戏运行的实际时间(以秒为单位),但是数值更加精确。

请添加图片描述
请添加图片描述

16.Time.smoothDeltaTime

它可以返回自游戏开始以来的上一帧所花费的时间(以秒为单位),并且会根据前几帧的平均时间来平滑处理。这个函数通常用于需要平滑处理时间的情况,比如实现平滑的运动、动画等。Time.deltaTime 会返回自上一帧以来的时间间隔,但不会进行平滑处理。如果你想要实现平滑的移动效果,你应该使用 Time.smoothDeltaTime。这俩属性其实在游戏平稳运行时数值几乎是完全一样的你也分不出来使用时的区别,但是当帧率波动很大时Time.smoothDeltaTime就会有明显的平滑效果。

请添加图片描述
这样会有平滑效果。

17.Time.time

它返回自游戏真正开始以来的总时间(以秒为单位)。你可以使用它来进行时间跟踪、计时、动画控制等操作。
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
当Time.timeScale变小的话Time.time增速会变慢。

18.Time.timeAsDouble

它就是Time.time的精确形式。

请添加图片描述
请添加图片描述

19.Time.timeScale

用于控制游戏时间流逝速度的变量。

请添加图片描述

20.Time.timeSinceLevelLoad

返回自场景加载以来的时间,以秒为单位。你可以使用Time.timeSinceLevelLoad来获取自场景加载开始以来经过的时间。
请添加图片描述
请添加图片描述
请添加图片描述
当你按下A键会发现它俩的值是一样的,按下空格键重新加载场景后,再按A会发现Time.time还是正常增加,而Time.timeSinceLevelLoad被重置了。

21.Time.timeSinceLevelLoadAsDouble

Time.timeSinceLevelLoad的高精度形式。

请添加图片描述
请添加图片描述
请添加图片描述

22.Time.unscaledDeltaTime

通常用于需要在游戏中进行时间无关的计算或动画更新时。例如,在某些情况下,你可能希望一些游戏逻辑或动画按照真实时间流逝,而不受游戏时间缩放因子的影响。在这种情况下,你可以使用Time.unscaledDeltaTime来进行计算,确保它不受时间缩放的影响。它是只读属性。它的值等于Time.deltaTime/Time.timeScale。

23.Time.unscaledTime

是一个只读属性,它返回自游戏开始以来的真实时间,不受时间缩放因子的影响。

请添加图片描述
请添加图片描述
这个值记录从点击运行按钮时开始到当前的时间间隔,无论你怎么该timeScale它都不变。

24.Time.unscaledTimeAsDouble

Time.unscaledTime的高精度形式。

请添加图片描述
请添加图片描述

【Unity】每天一个技术点-----Unity开发中的时间 1、受 TimeScale 影响的有:time、deltaTime、fixedTime、fixedUnscaledDeltaTime、smoothDeltaTime。2、不受 TimeScale 影响的有:realtimeSinceStartup、unscaledTime、unscaledDeltaTime、fixedUnscaledTime、fixedDeltaTime。3、Update和LateUpdate不受TimeScale 影响,但是FixedUpdate受TimeScale 的影响。 阅读详情

相关推荐

多线程中使用UNITY变量导致线程执行断掉却又不报错的问题

时间:2020.9.29,XMoba第一次Demo 子线程调用UNITY的相关变量或函数导致程序执行过程断掉,且不报任何错误的一个BUG 一,问题现象 网络异步连接的回调函数中使用了一个函数XLog.log,此函数中使用了UNITY的Time.FrameCount,导致程序执行到这一行时异常退出,但不报任何错误。 void OnConnectCallback(IAsyncRes...

c1sdn19的专栏 674

Unity之Time类

一、Time.time 该帧开始的时间(只读)。此为自游戏启动以来的时间(以秒为单位) 是应用程序已运行的时间(以秒为单位)。它是只读的。 应用程序在每帧开始时接收当前的 Time.time,该值按帧递增。每个帧的time调用将接收相同的值。在从FixedUpdate中调用时,将返回Time.FixedUpdate属性。 应避免常规的(每帧)调用:Time.time倾向于提供应用程序已经运行的时间长度,而不是每帧的时间。 Time.time就是为了提供游戏从开始到当前所花费的时间,单位秒...

qq_42345116的博客 7917

【Unity入门】24.碰撞检测

学习Unity碰撞体相关~

Lampard的博客 1万+

Unity中常用Time类详解

转自:https://blog.youkuaiyun.com/sinat_37730224/article/details/79230706 只读: Time.time:表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。 Time.deltaTime:表示从上一帧到当前帧的时间,以秒为单位。 Time.unscaledDeltaTime:不考虑timescale时候与deltaTime相同,若tim...

Zzz的专栏 4349

Unity_Time总结

系统时间获取(本地时间) //DateTime(Int32 年, Int32 月, Int32 日) //DateTime(年,月,日,时,分,秒,(可再加毫秒) / 协调世界时(UTC) 或本地时间) Debug.Log("W now " + System.DateTime.Now); //当前时间(年月日时分秒) 本地时间

wy小骑士 1163

Unity中Time类详解

1.对Time类的介绍 首先介绍两个概念:现实时间和游戏时间。大多数Time类都是依赖于游戏时间的。 现实时间也就是不依赖于程序内部,就算程序暂停也会继续计算的真实时间,而游戏时间是基于程序内部的,可以自行调整。 1.Time.time: 从游戏开始后所运行的时间,会受时间缩放比例的影响。 2.Time.realtimeSinceStartup: 从游戏开始后所运行的真实时间,不会...

L的博客 1万+

C#、Unity:Time 时间与计时

/ 1/22/2017 12:00:00 AM获取此实例的日期部分;其日期与此实例相同,其时间值设置为午夜 12:00:00 (00:00:00)。// 1/22/2017 2:19:17 PM将当前 DateTime 对象的值转换为本地时间。//1/22/2017 7:43:19 AM 此计算机上的当前日期和时间,表示为协调通用时间 (UTC,0时区的时间)//1/22/2017 12:00:00AM 当天日期,其时间组成部分设置为00:00:00。

龙雪的博客 2662

【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏3(附项目源码)

欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第24篇中,我们将探索如何用unity制作一个3D动物AI生态系统游戏,我会附带项目源码,以便你们更好理解它。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2018

Unity3D的Time类

Time.time:(只读)表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。 Time.timeSinceLevelLoad:(只读)表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止。 Time.deltaTime:(只读)表示从上一帧到当前帧时间,以秒为单位。 Time.fixedTime:(只读)表示以秒计游戏开始的时间,固定时间以定期...

weixin_42600446的博客 535

【机器人】线性方程最小二乘解法对机械臂DH参数进行标定

1.前言 看了一篇文章,觉得里面的DH参数标定法讲的很清晰,便使用Matlab复现了一下,效果还可以,特写此文记录。 2.原理 2.1.误差最佳值的最小二乘计算 有研究结果表明:几乎95%的机器人位置误差都是由机器人内部运动学的不准确描述引起的,所以对DH模型参数进行标定是很有必要的。 DH参数物理含义:选自《机器人学、机器视觉与控制-Matlab基础》 当DH参数确定后,我们...

要恰饭得嘛 1万+

Oracle EBS R12.2 安装 -- Step by Step

Oracle EBS R12.2 安装 -- Step by Step

Albert Tan DBA之路 1514

Unity&C# Time时间相关

1.Unity Time类 1/ Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。 2/ Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止。 3/ Time.deltaTime 表示从上一帧到当前帧时间,以秒为单位。 //计时器通过这个使用,update里把Time.delt...

weixin_30530939的博客 890

EEGLAB合辑 | 第一节 往EEGLAB导入数据

1、学习Matlab EEGLAB图形界面建立在强大的Matlab脚本语言之上。要使用EEGLAB构建宏命令和执行自定义和自动化处理的全部功能,就需要能够在Matlab中操纵EEGLAB数据结构。由于时间限制,这个wiki没有提供关于Matlab脚本语言的介绍。相反,用户需要在开始研究之前熟悉Matlab。 2、安装EEGLAB和教程文件 首先下载包含教程数据集的EEGLAB(30MB),附下载地址。 (https://sccn.ucsd.edu/eeglab/downloadtoolbox.php) 解压

nvsirgn的博客 5134

Unity和C#有关Time的函数

刚进公司一个月,笔者在总监的帮助下完成了自己的第一个游戏——《粉红小猪爱做饭》。虽然游戏质量很一般,但我也通过这个游戏学习到了一些东西,有关编码技巧和设计方面的思考,在这里记录一下。文章很浅显还可能有错误,望各位看官多多指教。主要还是来说下游戏设计方面的思路吧,一个游戏的规则要足够明确,不然会让玩家玩的云里雾里的,自然也就没什么吸引力了。但这种明确要怎么体现呢,我们不可能像编程一样给玩家提供一个AP

⎝⏠⏝⏠⎠ 2373

ACC自适应巡航功能

自适应巡航功能(Adaptive Cruise Control)通过传感器检测车辆前方形式环境,控制自车行驶速度以达到定速巡航、跟车巡航、跟车启停,并支持超车辅助等功能。1. 定速巡航一般可设置车辆在30~150km/h的定速范围内巡航2. 跟车巡航车速0~150km/h范围内的跟车巡航3. 跟车启停30s内:自车随之起步,驾驶员无需操作30s~600s内:驾驶员按钮激活 或 轻踩加速踏板激活起步600s后:ACC退出激活状态进入待激活状态,电子驻车制动EPB会自动启动4. 超车辅助。

LXY_LXY_的博客 1386

C# 基于NetStandard.Opc.Ua实现高效OPC UA数据订阅与同步读写

本文详细介绍了在C#中利用NetStandard.Opc.Ua库高效实现OPC UA数据订阅与同步读写的方法。通过实战代码演示了如何建立连接、配置订阅管理器、优化监控项分组,并对比了同步与异步读写的适用场景,帮助工业软件开发者构建稳定可靠的数据采集客户端,提升工业物联网应用开发效率。

weixin_29201859的博客 228

Unity 时间相关[DateTime]

Unity&C# Time时间相关 1.Unity Time类 1/ Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。 2/ Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止。 3/ Time.deltaTime 表示从上一帧到当前帧时间,以秒为单位。 //计时器通过这个使用,update里把Time.deltaTime累加起来,就是经过的时间 4/ Time.fixedTime表示以秒计游戏开始的时间,固定

W低小调W的博客 3354

【大模型】Coze AI 智能体工作流从配置到使用实战详解

Coze 扣子智能体工作流从配置到使用实战详解

congge 1万+

Unity shader Time.y

Unity shader Time.y Time.y = Time.timeSinceLevelLoad posted @ 2016-08-24 17:15 00000000O 阅读(...) 评论(...) 编辑 收藏 ...

N的专栏 1554

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—ISP图像处理开发案例

创龙科技研发的 TL3588-EVM 评估板具备强大视频处理能力,可满足多场景视频开发需求。为助力开发者快速上手,本文整理 7 个实用视频开发案例,涵盖从采集到显示的全流程,详细说明各案例的硬件连接、参数配置与代码解析,帮助开发者高效实现评估板视频相关功能开发与调试。

创龙,嵌入式一体化解决方案商 209

【立创EDA-PCB设计基础】4.模块化布局

本文对本专栏绘制的原理图进行模块化布局,首先进行预布局(将每个模块放一起),然后进行精细化布局(按照原理图来精细化布局)。

嵌入式阿齐Archie 3万+

Unity中的FixedUpdate、Update、LateUpdate的区别及游戏帧更新

【基本了解】 三者执行顺序:FixedUpdate ——>Update ——>LateUpdate 三者作用:FixedUpdate固定帧更新,一般用作物理更新;Update一般用作游戏逻辑更新;LateUpdate一般用作相机更新 【深入了解】 帧率的概念 帧率是什么呢?一秒内画面更新的次数。游戏常用的有30fps,60fps。我们知道,帧率低游戏会卡顿,具体解释下就是,每秒内看到的画面更新次数变少,少于一个阈值,那么画面在人眼看来就是不连续的,也即卡顿的。 这是阈值是多少呢?人眼识别

enternalstar的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

unity sky Time of Day - Dynamic Sky Dome

最近项目要求,需要做一个一天24小时的动态天空效果,一直找了好久这方面的资料。终于找到time of Day插件。效果还不错,上传了,供大家一起学习。 另外,我在修改Rendering Setting 中Ambient Light的颜色时,出现曝光。 在google上查了原因,发现,UNITY中颜色的值必须是从0~1之间,而不是0~255.

naoomi的专栏 3009

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【Unity3d游戏开发】Unity中的Time.timeScale

  马三最近在做一款游戏的时候涉及到了“加速”和“暂停”这两个功能,我第一时间就想到了应该用 Time.timeScale。当暂停的时候,设置timeScale = 0,当需要加速的时候,将 timeScale 设置为 n 倍即可。但是代码写到一般的时候,我就有些发懵,当 timeScale 数值被改变的时候,Update 、LateUpdate、FixedUpdate 是否还是安装之前的频率来执...

weixin_34241036的博客 368

unity 中C# 关于时间的相关函数

首先非常感谢这两位博主 下面这篇是转载于http://blog.sina.com.cn/s/blog_b3f51d8601015d6b.html这位博主的 1.Unity Time类 1/ Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。 2/ Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止的时间,也...

huhudeni的博客 6542
上一篇: Unity新导航系统---NavMeshObstacle组件
我想要M4Max
博客等级 码龄4年 76粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值