Unity&C# Time时间相关
1.Unity Time类
1/ Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。
2/ Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止。
3/ Time.deltaTime 表示从上一帧到当前帧时间,以秒为单位。
//计时器通过这个使用,update里把Time.deltaTime累加起来,就是经过的时间
4/ Time.fixedTime表示以秒计游戏开始的时间,固定时间以定期间隔更新(相当于fixedDeltaTime)直到达到time属性。
5/ Time.fixedDeltaTime 表示以秒计间隔,在物理和其他固定帧率进行更新,在Edit->ProjectSettings->Time的Fixed Timestep可以自行设置。
6/ Time.SmoothDeltaTime 表示一个平稳的deltaTime,根据前
N帧的时间加权平均的值。
7/ Time.timeScale 时间缩放,默认值为1,若设置<1,表示时间减慢,若设置>1,表示时间加快,可以用来加速和减速游戏,非常有用。
8/ Time.frameCount 总帧数
9/ Time.realtimeSinceStartup 表示自游戏开始后的总时间,即使暂停也会不断的增加。
10/ Time.captureFramerate 表示设置每秒的帧率,然后不考虑真实时间。
11/ Time.unscaledDeltaTime 不考虑timescale时候与deltaTime相同,若timescale被设置,则无效。
12/ Time.unscaledTime 不考虑timescale时候与time相同,若timescale被设置,则无效。
From: http://blog.csdn.net/liuyang_sy/article/details/46811125
2.C#-System.DateTime
日期时间相关处理:
0/ 构造函数:
DateTime(Int32 年, Int32 月, Int32 日)
DateTime(年,月,日,时,分,秒,(可再加毫秒)/协调世界时 (UTC) 或本地时间)
...
1/ 属性:
DateTime dt = DateTime.Now;
dt.ToString();// 1/22/2017 3:43:19 PM
//获取一个DateTime对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。[受时区影响;我们中国使用的是东八区的时间,所以和UTC大了8个小时]
DateTime dt2 = DateTime.Today;
dt2.ToString();//1/22/2017 12:00:00AM 当天日期,其时间组成部分设置为00:00:00。
DateTime dt3 = DateTime.UtcNow ;
dt3.ToString();//1/22/2017 7:43:19 AM 此计算机上的当前日期和时间,表示为协调通用时间 (UTC,0时区的时间)
dt.Year.ToString();//2017
dt.Date.ToString();// 1/22/2017 12:00:00 AM获取此实例的日期部分;其日期与此实例相同,其时间值设置为午夜 12:00:00 (00:00:00)。
dt.Day.ToString(); //22 获取此实例所表示的日期为该月中的第几天。
dt.DayOfWeek.ToString();//Sunday 获取此实例所表示的日期是星期几。
dt.DayOfYear.ToString();//22 获取此实例所表示的日期是该年中的第几天。
dt.Hour.ToString();//14 获取此实例所表示日期的小时部分。(24h制)
dt.Kind.ToString();//Local 返回基于本地时间Local、协调世界时 (UTC),还是两者皆否
dt.Millisecond.ToString();//630 获取此实例所表示日期的毫秒部分。
dt.Minute.ToString();//35 获取此实例所表示日期的分钟部分
dt.Month.ToString();//1 获取此实例所表示日期的月部分
dt.Second.ToString();//28 获取此实例所表示日期的秒部分
dt.Ticks.ToString();//632667942284412864获取表示此实例的日期和时间的计时周期数。
//每个计时周期表示一百纳秒,即一千万分之一秒。 1 毫秒内有 10,000 个计时周期。此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00(表示 DateTime.MinValue)以来经过的以 100 纳秒为间隔的间隔数。 它不包括归属于闰秒的刻度数。
dt.TimeOfDay.ToString();//15:20:43.1911987获取此实例的当天的时间。
----------
2/ 方法:
dt.ToFileTime().ToString();//131295394816200492将当前 DateTime 对象的值转换为Windows文件时间。
dt.ToFileTimeUtc().ToString();//131295683210873066将当前 DateTime 对象的值转换为 Windows 文件时间
dt.ToLocalTime().ToString();// 1/22/2017 2:19:17 PM将当前 DateTime 对象的值转换为本地时间
dt.ToLongDateString().ToString();//Sunday,January 22,2017转为长日期字符串表示形式
dt.ToLongTimeString().ToString();//2:20:33 PM转为其等效的长时间字符串表示形式。
dt.ToOADate().ToString();//42757.5978641782转换为等效的OLE自动化日期
dt.ToShortDateString().ToString();// 1/22/2017
dt.ToShortTimeString().ToString();//2:21 PM
dt.ToUniversalTime().ToString();//1/22/2017 6:22:10AM 转换为协调世界时(UTC
dt.AddYears(1).ToString();//1/22/2018 3:51:20 PM增加/减少年(参数可为负)
dt.AddDays(1.1).ToString();//1/23/2017 6:16:36 PM
dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
dt.AddMonths(1).ToString();//2005-12-5 13:47:04
dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
dt.AddTicks(1000).ToString();//2005-11-5 13:47:04 计时周期数
dt.CompareTo(dt).ToString();//0 两时间比较:早于<0,同时==0,迟于>0[static&¬ static]
dt.Add(?).ToString();//问号为一个时间段TimeSpan
dt.Equals("2005-11-6 16:11:04").ToString();//False [static&¬ static]返回是否具有相同日期和时间
dt.Equals(dt).ToString();//True
dt.GetHashCode().ToString();//1474088234
dt.GetType().ToString();//System.DateTime
dt.GetTypeCode().ToString();//DateTime
dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
dt.GetDateTimeFormats('t')[0].ToString();//14:06
dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
dt.GetDateTimeFormats('M')[0].ToString();//11月5日
dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
注:string格式字符串:
string.Format("{0:d}",dt);//2005-11-5
string.Format("{0:D}",dt);//2005年11月5日
string.Format("{0:f}",dt);//2005年11月5日 14:23
string.Format("{0:F}",dt);//2005年11月5日 14:23:23
string.Format("{0:g}",dt);//2005-11-5 14:23
string.Format("{0:G}",dt);//2005-11-5 14:23:23
string.Format("{0:M}",dt);//11月5日
string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
string.Format("{0:s}",dt);//2005-11-05T14:23:23
string.Format("{0:t}",dt);//14:23
string.Format("{0:T}",dt);//14:23:23
string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
string.Format("{0:U}",dt);//2005年11月5日 6:23:23
string.Format("{0:Y}",dt);//2005年11月
string.Format("{0}",dt);//2005-11-5 14:23:23
string.Format("{0:yyyyMMddHHmmssffff}",dt);//201701221603353262
//DateTime.Now.ToString(IFormatProvider provider)用法:
//注意:HH为24小时制hh为12小时制,年月日时分秒yyyy MM dd HH mm ss
//DateTime.Now.ToString("yyyy年MM月dd日"); yyyy年MM月dd日
//DateTime.Now.ToString("HH:mm"); 19:48
-----------------------------------------------
计算某年某月的天数
int days = DateTime.DaysInMonth(2007, 8);
days = 31;
-----------------------------------------------
给日期增加一天、减少一天
DateTime dt =DateTime.Now;
dt.AddDays(1); //增加一天
dt.AddDays(-1);//减少一天
其它年份方法类似...
3.时间戳
时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
1/ C#生成一个时间戳:(这里以秒为单位)
private static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalSeconds).ToString();
}
2/ C#时间戳转换为格式时间:(这里以秒为单位)
private DateTime GetTime(string timeStamp)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); //时间戳起始点转为目前时区
long lTime = long.Parse(timeStamp + "0000000");//转为long类型
TimeSpan toNow = new TimeSpan(lTime); //时间间隔
return dtStart.Add(toNow); //加上时间间隔得到目标时间
}
From: http://blog.csdn.net/fengqingtao2008/article/details/45271915
备:lua时间戳相关,参见另一片文章
Unity&C# Time时间相关的更多相关文章
- [Unity3D] C# Basic : Gameplay Scripting
教程:https://unity3d.com/cn/learn/tutorials/s/scripting 补充:http://www.runoob.com/csharp/csharp-inherit ...
- Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译
本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...
- Unity Shader 知识点总结(二)
紧接着上一篇文章的shader入门知识的总结,本文主要总结shader中的纹理贴图.透明度混合.顶点动画.后期特效处理等操作.如果有什么地方有错,请指出更正,谢谢.本文的代码主要来自开源书:unity ...
- Unity外包团队:关于手机unity游戏开发的技术选型
技术选型 Unity引擎内置了多人联机的解决方案,涵盖了从最底层的网络数据传输,到不同玩家之间的消息发送,再到游戏大厅这样的高级功能.考虑到Unity官方提供的云服务(Internet Service ...
- Unity Shader入门精要学习笔记 - 第15章 使用噪声
转载自 冯乐乐的 <Unity Shader 入门精要> 消融效果 消融效果常见于游戏中的角色死亡.地图烧毁等效果.这这些效果中,消融往往从不同的区域开始,并向看似随机的方向扩张,最后整个 ...
- Unity Update 具体解释
0x01:简单介绍 Unity的脚本继承了Monobehaviour类,在脚本中定义函数: void FixedUpdate(){} void Update(){} void LateUpdate() ...
- Unity3d入门 - 关于unity工具的熟悉
上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...
- 聊聊Unity项目管理的那些事:Git-flow和Unity
0x00 前言 目前所在的团队实行敏捷开发已经有了一段时间了.敏捷开发中重要的一个话题便是如何对项目进行恰当的版本管理.项目从最初使用svn到之后的Git One Track策略再到现在的GitFlo ...
- Unity游戏内版本更新
最近研究了一下游戏内apk包更新的方法. ios对于应用的管理比较严格,除非热更新脚本,不太可能做到端内大版本包的更新.然而安卓端则没有此限制.因此可以做到不跳到网页或应用商店,就覆盖更新apk包. ...
随机推荐
- mac安装docker,显示无效的命令
mac安装完docker后,显示无效的命令. 在应用程序中找到docker安装的路径,将该路径写到/etc/paths里面
- C# 不借助第三个变量实现两整数交换
c#中实现两个int变量的数值互换,在借助第三个变量做临时载体的情况下,非常简单. ; ; int c ; c = a; a = b; b = c; 如果不借助第三方变量,有几种实现的方法: 1.异或 ...
- 局域网内的机器不能ping通虚拟机,但是虚拟机可以ping通局域网的机器
将虚拟机的网络网络适配器模式改成桥接模式即可: 一.选择虚拟机里面的设置: 二.在虚拟机设置界面将网络适配器模式改成桥接模式
- spring sringboot 加载配置文件 多目录配置文件 多级分类配置文件
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = ...
- 百度搜索_如何打开Intellij IDEA的代码提示功能?
Intellij IDEA是一款优秀的编程软件,相比较Eclipse之下它的用户群较小,但并不代表它的功能就比Eclipse差,如果用顺手了还是特别好用的.代码提示功能对于程序员来说非常重要,那么我们 ...
- java中String new和直接赋值的区别
Java中String new和直接赋值的区别 对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...
- 高通 fastboot 显示
需要在fastboot里面添加功能用于保存,记录一下fastboot显示的过程. android O新添加了选项,如下 platform/msm_shared/rules.mk ifeq ($(ENA ...
- 解决git pull 每一次都需要输入密码的问题
方法1: 当我们配置好我们的git以后呢,我们可以在配置文件~/.gitconfig 或 ~/.config/git/config 文件里加入这么两行: [credential] helper = s ...
- 第三百五十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy信号详解
第三百五十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy信号详解 信号一般使用信号分发器dispatcher.connect(),来设置信号,和信号触发函数,当捕获到信号时执行 ...
- system.web下的HttpModules节点和system.webServer下的modules节点的配置区别
[转]自定义HttpModule的一些经验--配置篇 自定义web模块,需继承System.Web.IHttpModule接口 一:拦截对该服务器所有的http请求. 第一步:将自定义module类使 ...