zoukankan      html  css  js  c++  java
  • unity3d 计时功能舒爽解决方案

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

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

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

    思路决定一切啊。。。

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

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

    为什么要归零呢?

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

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

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

    2015.1.30.17.17.41.33

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

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

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

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

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

     1     private DateTime timeNow = new DateTime(1994, 10, 19, 00, 00, 00, 00);
     2 
     3     void Update()
     4     {
     5         timeNow = timeNow.AddSeconds(Time.deltaTime);
     6 
     7         SetGameTime(timeNow, time);
     8         SetGameTime(timeNow, best);
     9 
    10         //这个是对比时间用的
    11         //Debug.Log(DateTime.Compare(DateTime.Now, timeNow));
    12     }
    13 
    14     /// 置游戏时间 <summary>
    15     /// 置游戏时间
    16     /// </summary>
    17     /// <param name="_time">时间</param>
    18     /// <param name="timeType">时间类型</param>
    19     private void SetGameTime(DateTime _time, UISprite[] timeType)
    20     {
    21         //拼接字符
    22         //最终格式:001122
    23         string currentTime = string.Format("{0}{1}{2}",
    24             //取分补0
    25             _time.Minute.ToString().PadLeft(2, '0'),
    26             //取秒补0
    27             _time.Second.ToString().PadLeft(2, '0'),
    28             //取毫秒/10补0(1s=1000ms 只需要两位数 所以/10)
    29             (_time.Millisecond / 10).ToString().PadLeft(2, '0')
    30             );
    31 
    32         //显示对应的图(我用的是美术字)
    33         for (int i = 0; i < 6; i++)
    34             timeType[i].spriteName = currentTime.Substring(i, 1);
    35     }

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

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

    哦哦,差点忘记了!!

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

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

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

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

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

  • 相关阅读:
    顺序前缀改为随机性前缀 反转时间戳 反转年月日
    后台组件的治理思路
    干货 | 高耦合场景下,Trip.com如何做支付设计与落地
    每天响应数亿次请求,腾讯云如何提供高可用API服务?
    系统管理及操作命令
    远程连接及系统管理
    linux系统部署安装过程
    day 1 硬件组成概念及介绍笔记
    day 4
    day 3
  • 原文地址:https://www.cnblogs.com/shenggege/p/4262905.html
Copyright © 2011-2022 走看看