【UnityGamePlay】Unity中的时间
前言
实现定时器需要搞懂Unity中的时间概念,这里总结一下。
Unity中的时间有三种:游戏逻辑时间。游戏非逻辑时间。现实世界真实时间。
这三个名字是我根据功能自己起的。
游戏逻辑时间Time.time
Time.time返回从当前场景开始运行以来的游戏时间(以秒为单位)。当游戏暂停时,Time.time也会暂停。它的精度是帧率(Frames Per Second, FPS)的倒数。
受游戏的时间逻辑影响,也就是受Time.timeScale影响,可以实现暂停,快进和放慢效果。
真实时间Time.realtimeSinceStartup
返回从应用程序启动以来的实际时间(以秒为单位),并且不受帧率和游戏暂停的影响。它的精度是计算机的时钟周期。需要注意,应用暂停也不会影响到这个值。
游戏非逻辑时间Time.unscaledTime
返回自游戏开始以来的时间(以秒为单位),与Time.time不同的是,它不受Time.timeScale的影响,也就是说即使游戏被暂停或者时间缩放比例被设置为0,Time.unscaledTime仍然会继续增加。
Time.unscaledTime的增长方式与Time.realtimeSinceStartup类似,它是根据系统时钟来计算的。因此,它的增长速度不受游戏帧率的影响。
realtimeSinceStartup 和 unscaledTime 的区别
Time.realtimeSinceStartup是从应用程序启动时开始计时的,不受Time.timeScale的影响,它提供了一个相对于系统时钟的实时计时器。这意味着,即使游戏暂停或慢动作,它的值也会持续增加,因为它是独立于游戏时间的。
而Time.unscaledTime是从游戏开始运行时开始计时的,不受Time.timeScale的影响,它提供了一个相对于游戏时间的计时器。这意味着,如果游戏时间被暂停或缩放,它的值不会改变,因为它只计算了实际经过的时间,而不受游戏时间的影响。
因此,Time.realtimeSinceStartup通常用于记录应用程序的运行时间、帧率等系统级别的指标,而Time.unscaledTime通常用于计算游戏对象的运动、动画等与游戏时间相关的指标。
总结就是区别不大。
三种时间的应用场景
Time.time:
● 在游戏中测量某个事件的持续时间,例如计算角色移动所需的时间。
● 控制游戏中的某些行为发生时间,例如生成敌人、播放特效等。
● 实现游戏中的时间限制,例如倒计时。
Time.realtimeSinceStartup:
● 计算应用程序的运行时间,例如测量启动应用程序到某个事件发生所需的时间。
● 实现与时间相关的任务,例如按照实际时间播放视频或音频。
Time.unscaledTime:
● 控制游戏中的某些行为不受时间缩放比例的影响,例如计算游戏中角色状态的持续时间。
● 实现不受时间缩放比例影响的计时器,例如倒计时、时间累计等。
其他时间
Time.deltaTime:表示自上一帧以来的时间间隔,通常用于实现物体的平滑移动和旋转。
Time.timeScale:表示游戏时间的缩放比例,默认值为1,表示正常的游戏速度。可以将其设置为0以暂停游戏,也可以将其设置为其他值以实现慢动作、加速等效果。
Time.fixedDeltaTime:表示每个物理更新之间的时间间隔,通常用于控制物理引擎的性能和精度。
Time.maximumDeltaTime:表示最大允许的时间间隔,用于限制帧率过低时的时间间隔,防止游戏出现异常。
Time.smoothDeltaTime:表示自上一帧以来的平均时间间隔,用于平滑物体的移动和旋转。
Time.timeSinceLevelLoad:表示自当前场景加载以来的时间,通常用于实现倒计时、计时器等效果。
Time.captureFramerate:表示视频录制的帧率,用于控制视频录制的质量和大小。
【UnityGamePlay】Unity中的时间相关推荐
- ios开发中计算代码运算时间_理解Unity中的优化(二):内存
内存: 内存消耗是一个关键的性能指标,尤其是在内存资源有限的平台上,比如低端移动设备. 内存消耗分析: 在Unity中诊断内存问题,Unity介绍了一款开元的可视化内存分析工具--MemoryProf ...
- Unity 中实现子弹时间效果
在以前,学习xna游戏框架时,由于xna封装的游戏元素很少,很多功能,只能自己去写一篇: 如:子弹时间效果: 先来介绍一个何为"子弹时间"效果: 这得始源于:著名科幻电影<黑 ...
- 测试Unity中常用代码的运行所用时间:三维向量和变换位移篇 #性能测试 #Vector3 #tranform.position
C# Vector3 和 transform.position 篇 〇.前言 系统自带计时器 -System.Diagnostics.StopWatch- 的使用 一.三维向量测试 1. 三维向量的函 ...
- 【功能开发篇】游戏中的时间系统修改Unity自带组件运行速度
"功能开发篇"系列文章记录了我在平时工作中遇到的问题以及一些和游戏功能相关的项目经验. 目录 1. 插件介绍 2. 核心类功能拆解 3. Timeline深入 修改Rigidbod ...
- unity中时间函数
解决问题:unity中按照固定时间调用函数 方法:利用自带的Time.time 函数 public double time1,time2;// Start is called before the f ...
- 关于Unity中的UGUI优化,你可能遇到这些问题
一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准和特别要求呢? 据我们所知,alpha split 的功能最初只对 ...
- 使用示例_在Unity中使用ComputeShader示例
写这篇的缘由是最近老师给了一个UE4的工程,是一个海水模拟的Demo,实现了二十年前一篇paper的算法,paper的地址是: http://citeseerx.ist.psu.edu/viewdoc ...
- Unity中Oculus分屏相机和普通相机一键切换
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50462157 作者:car ...
- ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题
关键字 界面制作 网格重建 界面切换 加载相关 字体 一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准 ...
最新文章
- Ubuntu - 重置忘记的root密码
- python中的time库安装步骤-python中time库的实例使用方法
- vsCode格式化插件
- 非注解和注解的处理器映射器和适配器---SpringMVC学习笔记(三)
- 论文阅读笔记(三)【ACL 2021】Locate and Label: A Two-stage Identifier for Nested Named Entity
- 设计模式实践系列 (3) - 装饰模式 ( Decorator )
- (转)淘淘商城系列——分布式文件系统FastDFS
- Spring @Value转义冒号(:)的默认值
- RTSP协议播放网络视频
- HBase中MVCC的实现机制及应用情况
- Linux下,如何安装有互相依赖关系的RPM包[转]
- win10共享其它计算机文件,两台win10间如何文件共享
- BilibiliVideoDownload for Mac(B站视频下载工具)
- 游戏引擎架构-学习笔记
- 平台卡卷API文档分享
- uni-app 数据上拉加载更多功能
- termios的例子
- 我在美团Android研发岗工作的那5年,社招面试心得
- 神仙级python入门教程(非常详细),从零基础入门到精通,从看这篇开始!
- 安装 Visual Studio[文章第二部分为Visual Studio2010详解安装教程(附下载链接)]
热门文章
- 截取嵌入网页的一部分
- 【每日一练】105—CSS实现一款输入文本动画的效果
- Go下载第三方包、git下载包:常见问题汇总
- 耐威迪参加第十一届中国优秀数据中心峰会并做主题演讲
- 2022年3月A-level数学M1真题解析(1)
- value_counts的ascending是干什么的
- redis排行榜_java_【Redis 源码日志】- Redis 应用:积分排行榜 - Java 技术驿站-Java 技术驿站...
- java which valid identifier_JAVA程序员认证模拟题及分析(2)
- Pytorch搭建GoogLeNet网络(奥特曼分类)
- sequelize 增加数据库字段_使用Sequelize操作MySQL