上次也写了一篇计时功能的博客

今天这篇文章和上次的文章实现思路不一样,结果一样

上篇文章地址:http://www.cnblogs.com/shenggege/p/4251123.html

思路决定一切啊。。。

这次思路比上次的好很多,多谢我的好基友小全全指点

思路就是new一个时间,年月日随便写,时/分/秒/毫秒归零

为什么要归零呢?

因为在update中每执行一次,我们就向这个时间 +time.deltatime 秒

然后在分别取出分/秒/毫秒

表达能力有限,举个例子吧

2015.1.30.17.17.41.33

不要前面的年月日:17时17分41秒33毫秒

update每执行一次,我们就加上时间,然后在分别取出分/秒/毫秒

最后挨个取字符就得到我们想要的结果了

哎,还是解释得不够完美,这已经是我语言表达能力的极限了

我直接上代码吧,代码量很少

     private DateTime timeNow = new DateTime(, , , , , , );

     void Update()
{
timeNow = timeNow.AddSeconds(Time.deltaTime); SetGameTime(timeNow, time);
SetGameTime(timeNow, best); //这个是对比时间用的
//Debug.Log(DateTime.Compare(DateTime.Now, timeNow));
} /// 置游戏时间 <summary>
/// 置游戏时间
/// </summary>
/// <param name="_time">时间</param>
/// <param name="timeType">时间类型</param>
private void SetGameTime(DateTime _time, UISprite[] timeType)
{
//拼接字符
//最终格式:001122
string currentTime = string.Format("{0}{1}{2}",
//取分补0
_time.Minute.ToString().PadLeft(, ''),
//取秒补0
_time.Second.ToString().PadLeft(, ''),
//取毫秒/10补0(1s=1000ms 只需要两位数 所以/10)
(_time.Millisecond / ).ToString().PadLeft(, '')
); //显示对应的图(我用的是美术字)
for (int i = ; i < ; i++)
timeType[i].spriteName = currentTime.Substring(i, );
}

以上是全部代码,希望对大家有所帮助!

现在回头看看上次关于这个功能的文章,不堪直视啊- -

哦哦,差点忘记了!!

使用这个思路的话,当分为60分时,会自动归零

因为60分=1时!也就是说当分为60时,就会出现bug!

尼玛归零了!玛归零了!归零了!零了!了!!

不过话说回来哪个二货会在手机上挂个60分钟就为了等这个bug出现。。。

本文链接:http://www.cnblogs.com/shenggege/p/4262905.html

unity3d 计时功能舒爽解决方案的更多相关文章

  1. Unity3D逻辑热更新,第二代舒爽解决方案,L#使用简介

    热更新 天下武功,无坚不破,唯快不破 热更新就是为了更快的把内容推到用户手中. 之前,我设计了C#Light,经过半年多的持续修补,勉强可用,磕磕绊绊.感谢那些,试过,骂过,用过的朋友,在你们的陪伴下 ...

  2. Unity3D 游戏计时功能实现

    最近工作实在是太忙了,没办法认真写博客,但是还是要好好记录下日常的学习. 需求 各类游戏中都大量运用到计时功能,不管是直接显示的在前端UI,还是后台运行. 思路 Unity中提供了Time类可以方便的 ...

  3. Atitit截屏功能的设计解决方案

    Atitit截屏功能的设计解决方案 自己实现.... 使用快捷键.. 弹出自己的win,,背景是屏幕快照 点击鼠标光标变成十字状态 出现截屏窗口调整截屏窗口位置与大小 释放鼠标,三个btn,,  复制 ...

  4. Unity3d 播放高质量视频解决方案

    Unity3d 播放高质量视频解决方案~ 最近在折腾一个视频游戏.真的是一个视频游戏,游戏主背景是个大视频.可能切换三四个视频,而且需要无缝切换. 平台是安卓,蕊片是rockclip.找了各式各样的插 ...

  5. C/C++/Java 程序计时功能函数

    编写程序肯定要使用计时功能,来判断程序的执行时间.今天Google了一下,自己就梳理总结一下: (1)C/C++程序计时 C/C++中使用的计时函数是clock(). C语言中的头文件对应是#incl ...

  6. 【cocos2d-x制作别踩白块儿】第九期:游戏计时功能(附源代码)

    游戏没有计时,不是坑爹吗? 这一期,我们将来加入游戏计时功能. 1. 定义变量和函数 我们先在HelloWorldScene.h中定义几个变量和函数 long startTime; bool time ...

  7. JavaScript如何实现计时功能。

    JavaScript如何实现计时功能. 解答:<script> window.setTimeout( “window.location = ‘http://www.csdn.net ‘; ...

  8. 实现windows批处理下的计时功能

    有时在执行完一段windows的批处理后,想知道这个过程花费了多少时间,如果是windows下的c代码可以在过程前后分别调用GetTickCount(),然后相减即可得到花费的时间. 但是如果在批处理 ...

  9. Unity3D启动报错的解决方案

    在Windows Server 2003 下安装好Unity3D,启动时报错--“Failed to initialize unity graphics.”,截图如下: 在网上搜了一下,说是要启用D3 ...

随机推荐

  1. mysql 设置无密码登陆

    登入 MySQL 报错: C:\Users\dell>mysql -uroot -p Enter password: **** ERROR 1045 (28000): Access denied ...

  2. 配置文件和mybatis文件存放位置导致系统启动不了

    1.web.xml <!-- 加载spring容器 --> <context-param> <param-name>contextConfigLocation< ...

  3. 二十四、详述 IntelliJ IDEA 中自动生成 serialVersionUID 的方法

    当我们用 IntelliJ IDEA 编写类并实现 Serializable(序列化)接口的时候,可能会遇到这样一个问题,那就是: 无法自动生成serialVersionUID. 而serialVer ...

  4. 【洛谷P2279】[HNOI2003]消防局的设立

    消防局的设立 题目链接 贪心:每次取出深度最大的节点,若没有被覆盖到,要想覆盖它, 最优的做法显然是将它的爷爷设为消防局 (因为该节点深度为最大,选兄弟.父亲所覆盖的节点,选了爷爷后都能够覆盖) 用优 ...

  5. 从C语言的volatile关键字,了解C#的volatile机制(转载)

    C#中有一个关键字volatile,一直不太明白到底什么时候才用它,只知道在多线程操作同一个变量的时候要使用volatile关键字,下面看到了一篇C语言关于volatile关键字的介绍,写的很不错,其 ...

  6. 屏蔽JS代码错误

    用来屏蔽IE的错误的JS代码,也能屏蔽弹出框错误! <SCRIPT language=JavaScript> function killErrors() { return true; } ...

  7. 一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList

    一点一点看JDK源码(五)java.util.ArrayList 后篇之SubList liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) S ...

  8. Oracle创建聚簇表

    创建聚簇表过程: 创建簇(cluster)----创建簇表(基本类似创建一般表但有区别)----创建簇索引(index)----数据管理 创建簇: create cluster stu_ach(sid ...

  9. python 输入三个整数,按照从小到大的顺序打印

    # # 3 输入三个整数,按照从小到大的顺序打印 a = int(input('请输入第一个整数:')) b = int(input('请输入第二个整数:')) c = int(input('请输入第 ...

  10. 【usaco】1.1

    你的飞碟在这儿Your Ride Is Here(难度:入门难度) 题目链接 题目大意 emmmm 输入两个字符串,问他们每个字母的asco码相乘后字符串是否相等. 思路 一道水题?(雾) 错误代码: ...