Unity中的计时器

计时器简单实现(有问题懒得改,下个标题是修改后的)

在GameFramework中协程不知道为啥用不了,只能用update来写计时器了
首先设置一下时分秒数值,这个必须提前写好,不能封方法,因为放进Update里之后每帧都会重新赋值,不能执行倒计时显示了
float a = 00f;
float b = 59f;
float c = 60f;
封方法
传个显示的字符,传个要展示的text

private void _jishiqi(string d,Text jingli)
        {

            c -= Time.deltaTime;
            if (c <= 0)
            {
                b -= 1;
                c = 60;
            }
            if (b <= 0)
            {
                a -= 1;
                b = 60;
            }
            jingli.text = d + a + ":" + b + ":" + (int)c;
            
            
            //
        }

放进update里
在这里插入图片描述

当前系统时间

在这里插入图片描述

例精力全部恢复时间=系统时间+倒计时时间

 private void Jingliquanbuhuifu(string e, Text allHuifu)
        {
            if (b != 0)
            {
                int nowc = (int)c + DateTime.Now.Second;
                int nowb = (int)b + DateTime.Now.Minute;
                int nowa = (int)a + DateTime.Now.Hour;
                if (nowc >= 60)
                {
                    nowb += 1;
                    nowc = nowc - 60;
                }
                if (nowb >= 60)
                {
                    nowa += 1;
                    nowb = nowb - 60;
                }
                if (nowa >= 24)
                {
                    nowa = nowa - 24;
                    allHuifu.text = e + "明日" + nowa + ":" + nowb;
                }
                else
                {
                    allHuifu.text = e + "今日" + nowa + ":" + nowb;
                }
            }
            else
            {
                allHuifu.text = "已满";
            }

        }

不要放进update,只用调用一次就行,这里放进了Onopen里

在这里插入图片描述

修改后的

private void _jishiqi(string d,Text jingli)
        {
            c -= Time.deltaTime;

            jingli.text = d + (int)c / 3600 + ":" + (int)c/60%60 + ":"+ (int)c % 60;
            if (c<=0)
            {
                c = 0;
                _jingliAllhuifu.text = "已满";
            }
           
        }
        //精力全部恢复
        float jinglizhi = 0.1f;
        float a;
        float b ;
        float c ;
        private void Jingliquanbuhuifu(string e, Text allHuifu)
        {
            c = 30 * jinglizhi * 60;
            if (c>0)
            {
                int nowc = (int)c % 60 + DateTime.Now.Second;
                int nowb = (int)c / 60 % 60 + DateTime.Now.Minute;
                int nowa = (int)c / 3600 + DateTime.Now.Hour;
                if (nowc >= 60)
                {
                    nowb += 1;
                    nowc = nowc - 60;
                }
                if (nowb >= 60)
                {
                    nowa += 1;
                    nowb = nowb - 60;
                }
                if (nowa >= 24)
                {
                    nowa = nowa - 24;
                    allHuifu.text = e + "明日" + nowa + ":" + nowb;
                }
                else 
                {
                    allHuifu.text = e + "今日" + nowa + ":" + nowb;
                }
            }
            else if(c<=0)
            {
                
                    allHuifu.text = "已满";
                
            }

        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值