Unity3D UGUI之自制定时器(二)

来源:互联网 发布:纪念日软件 编辑:程序博客网 时间:2024/05/22 10:35

用unity3d5.0 +UGUI做一个很有用的游戏计时器

一、源代码

[csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. /// <summary>  
  2. /// 时间:2014-4-8  
  3. /// 作者:GWL  
  4. /// 描述:这个类用来处理计时功能,包括计时开始,暂停计函数  
  5. /// </summary>  
  6. using UnityEngine;  
  7. using System.Collections;  
  8. using UnityEngine.UI;  
  9.   
  10. public class Timer : MonoBehaviour {  
  11.       
  12.     public float time_All = 300;//计时的总时间(单位秒)  
  13.     public float time_Left;//剩余时间  
  14.     public bool isPauseTime = false;  
  15.     public Text time;  
  16.     // Use this for initialization  
  17.     void Start () {  
  18.         time_Left = time_All;  
  19.     }  
  20.       
  21.     // Update is called once per frame  
  22.     void Update () {  
  23.         if(!isPauseTime){  
  24.             if(time_Left > 0)  
  25.                 StartTimer();  
  26.         }  
  27.           
  28.     }  
  29.     /// <summary>  
  30.     /// 开始计时   
  31.     /// </summary>  
  32.     void StartTimer(){  
  33.         time_Left -= Time.deltaTime;  
  34.         time.text = GetTime (time_Left);  
  35.           
  36.     }  
  37.     /// <summary>  
  38.     ///继续游戏,这个暂时加在这里,后期代码重构时加在UIControl中   
  39.     /// </summary>  
  40.     public void ContinueGame(){  
  41.   
  42.         isPauseTime = false;  
  43.         Time.timeScale  = 1;  
  44.     }  
  45.   
  46.     /// <summary>  
  47.     /// 暂停计时  
  48.     /// </summary>  
  49.     public void PauseTimer(){  
  50.         isPauseTime = true;   
  51.         Time.timeScale = 0;  
  52.     }  
  53.     /// <summary>  
  54.     /// 获取总的时间字符串  
  55.     /// </summary>  
  56.     string GetTime(float time){  
  57.         return GetMinute (time) + GetSecond (time);  
  58.           
  59.     }  
  60.       
  61.     /// <summary>  
  62.     /// 获取小时  
  63.     /// </summary>  
  64.     string GetHour(float time){  
  65.         int timer = (int)(time / 3600);  
  66.         string timerStr;  
  67.         if (timer < 10)  
  68.             timerStr = "0" + timer.ToString () + ":";  
  69.         else   
  70.             timerStr = timer.ToString () + ":";  
  71.         return timerStr;  
  72.     }  
  73.     /// <summary>  
  74.     ///获取分钟   
  75.     /// </summary>  
  76.     string GetMinute(float time){  
  77.         int timer = (int)((time % 3600)/60);  
  78.         string timerStr;  
  79.         if (timer < 10)  
  80.             timerStr = "0" + timer.ToString () + ":";  
  81.         else   
  82.             timerStr = timer.ToString () + ":";  
  83.         return timerStr;  
  84.     }  
  85.     /// <summary>  
  86.     /// 获取秒  
  87.     /// </summary>  
  88.     string GetSecond(float time){  
  89.         int timer = (int)((time % 3600)%60);  
  90.         string timerStr;  
  91.         if (timer < 10)  
  92.             timerStr = "0" + timer.ToString ();  
  93.         else   
  94.             timerStr = timer.ToString ();  
  95.           
  96.         return timerStr;  
  97.     }  
  98. }  
二、截图


1 0