一、倒计时制作
(1)倒计时用的NGUI制作的界面,也可自行方便用Unity自带的UGUI来制作。
(2)倒计时的功能使用的是协程功能(也可以用计时器,但协程可同步多个倒计时的进行),代码如下:
string One;
string Tow;
string Three;
int totalSecond = 7200;
private void Start()
{
StartCoroutine("CountDown", totalSecond);
}
IEnumerator CountDown(int m)
{
while (m > 0)
{
yield return new WaitForSeconds(1);
m--;
Tow = string.Format("{0:D2} {1:D2} {2:D2}", "0" + m %7200/7200 + "h", m % 3600 / 60 + "m", m % 60 + "s");
One = string.Format("{0:D2} {1:D2} {2:D2}", "0" + m % 7200/3600 + "h", m % 3600 / 60 + "m", m % 60 + "s");
Three = string.Format("{0:D2}:{1:D2}:{2:D2}", 0/m, m % 360 / 60, m %60);
Debug.Log(Three);
}
}
二、 Unity3d本地简单数据存储PlayerPrefs的使用
本地持久化保存与读取的类PlayerPrefs支持3种数据类型的保存和读取,浮点型,整形和字符串;
可进行简单的读写功能,我这里对倒计时引用的是字符串的读写。
(1)写,即存储数据:
PlayerPrefs.SetString("_Time1", One);
PlayerPrefs.SetString("_Time2", Tow);
PlayerPrefs.SetString("_Time3", Three);
(2)读,即调用存储的数据:
public UILabel GameCountTimeTextOne;
public UILabel GameCountTimeTextTow;
public UILabel GameCountTimeTextTip;
private void Update()
{
GameCountTimeTextOne.text = PlayerPrefs.GetString("_Time1");
GameCountTimeTextTow.text = PlayerPrefs.GetString("_Time2");
GameCountTimeTextTip.text= PlayerPrefs.GetString("_Time3");
}
三、切换场景DontDestroyOnLoad的使用(保证倒计时能够实时更新和获取)
(1)DontDestroyOnLoad的功能使用是将一个gameobject在切换场景的时候不被销毁而进行保存?。
(2)为避免使用DontDestroyOnLoad的功能,切换场景对保存物体的重复生成,切应添加一个单例类,代码如下:
static DontDestroy instance = null;
private void Awake()
{
if (instance != null)
{
Destroy(gameObject);
return;
}
instance = this;
DontDestroyOnLoad(gameObject);
}
四、效果图如下:
|