最近工作实在是太忙了,没办法认真写博客,但是还是要好好记录下日常的学习。

 

需求

各类游戏中都大量运用到计时功能,不管是直接显示的在前端UI,还是后台运行。

思路

Unity中提供了Time类可以方便的进行时间上的获取,下面的例子中,我对其进行的简单的封装,能够方便的运用到各类型的游戏中。不少游戏中同时还提供了加速,暂停等等功能,unity中的TimeScale属性可以很方便的实现这些功能。

实现

计时的功能实现起来还是比较的方便。unity的Time.time能个距离游戏开始的时间,利用Mathf.FloorToInt方法取整,就等到了距离游戏开始多少秒,简单的写了两个时间转换的方法。

 

 

 1 void OnGUI()
 2     {
 3         GUI.skin = clockGuiSkin;
 4         NowTime = TimeFormatBase(Mathf.FloorToInt(Time.time));
 5         GUI.Label(new Rect(screenWidth*0.8f, screenHeight*0.05f, 120f, 30f), NowTime);
 6         
 7         if(GUI.Button(new Rect(10,10,100,30),"暂停"))
 8         {
 9             Debug.Log("Stop");
10             Stop();
11         }
12         if (GUI.Button(new Rect(10, 60, 100, 30), "加速"))
13         {
14             timeScale = Mathf.Clamp(timeScale*2,0,100);
15             
16             SetTimeScale(timeScale);
17             Debug.Log("Quick:" + timeScale);
18         }
19     }
Clock

相关文章: