Unity3D UGUI之自制定时器

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///  描述:处理计时功能,包括计时开始,暂停计时
/// </summary>
public class CalculatorTime : MonoBehaviour {

    public float time_All = 300;//计时的总时间(单位秒)  
    public float time_Left;//剩余时间  
    public bool isPauseTime = false;
    public Text time;
    // Use this for initialization  
    void Start()
    {
        time_Left = time_All;
    }

    // Update is called once per frame  
    void Update()
    {
        if (!isPauseTime)
        {
            if (time_Left > 0)
                StartTimer();
        }

    }
    /// <summary>  
        /// 开始计时   
        /// </summary>  
    void StartTimer()
    {
        time_Left -= Time.deltaTime;
        time.text = GetTime(time_Left);

    }
    /// <summary>  
        ///继续游戏,这个暂时加在这里,后期代码重构时加在UIControl中   
        /// </summary>  
    public void ContinueGame()
    {

        isPauseTime = false;
        //Time.timeScale = 1;
    }

    /// <summary>  
        /// 暂停计时  
        /// </summary>  
    public void PauseTimer()
    {
        isPauseTime = true;
        //Time.timeScale = 0;
    }
    /// <summary>  
        /// 获取总的时间字符串  
        /// </summary>  
    string GetTime(float time)
    {
        return GetHour(time)+ GetMinute(time) + GetSecond(time);

    }

    /// <summary>  
        /// 获取小时  
        /// </summary>  
    string GetHour(float time)
    {
        int timer = (int)(time / 3600);
        string timerStr;
        if (timer < 10)
            timerStr = "0" + timer.ToString() + ":";
        else
            timerStr = timer.ToString() + ":";
        return timerStr;
    }
    /// <summary>  
        ///获取分钟   
        /// </summary>  
    string GetMinute(float time)
    {
        int timer = (int)((time % 3600) / 60);
        string timerStr;
        if (timer < 10)
            timerStr = "0" + timer.ToString() + ":";
        else
            timerStr = timer.ToString() + ":";
        return timerStr;
    }
    /// <summary>  
        /// 获取秒  
        /// </summary>  
    string GetSecond(float time)
    {
        int timer = (int)((time % 3600) % 60);
        string timerStr;
        if (timer < 10)
            timerStr = "0" + timer.ToString();
        else
            timerStr = timer.ToString();

        return timerStr;
    } 

}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值