纳金网
标题:
Unity_倒计时的代码
[打印本页]
作者:
狂风大尉
时间:
2014-6-30 18:33
标题:
Unity_倒计时的代码
using UnityEngine;
using System.Collections;
using System;
public class CountTime : MonoBehaviour {
// 初始化60s倒计时 //
public int totalSeconds = 60;
// 倒计时当前秒数 //
private int leaveSeconds;
private bool onCountDown = false;
private string countDownTitle = "开始";
void Awake()
{
leaveSeconds = totalSeconds;
}
void OnGUI()
{
GUI.Button(new Rect(50, 50, 50, 50), leaveSeconds.ToString());// 倒计时秒数 //
if (GUI.Button(new Rect(150,50,80,30),countDownTitle))
{
if (countDownTitle == "开始")
{
countDownTitle = "暂停";
onCountDown = true;
StartCoroutine(DoCountDown());
}
else
{
countDownTitle = "开始";
onCountDown = false;
StopAllCoroutines(); //只要StartCoroutine后就一直存在,而且还会叠加。导致一秒要减你2,3,4...秒不等。所以在暂停的时候要StopAllCoroutines()
}
}
}
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
print(countDownTitle.ToString()+",leave seconds:"+leaveSeconds.ToString());// 每帧打印当前秒数 //
//if (onCountDown)
//{
// onCountDown = false;
// StartCoroutine(DoCountDown());
//} //一开始StartCoroutine是放在Update下触发的,需要加判断,并且要暂停的时候逻辑上不好控制,改到在OnGUI内鼠标点击后控制
}
IEnumerator DoCountDown()
{
while (leaveSeconds>0)
{
yield return new WaitForSeconds(1f);
leaveSeconds--;// 当秒数>0 的时候, --
}
}
}
复制代码
作者:
HIDEOKOJIMA
时间:
2014-6-30 18:49
Thanks for sharing !
作者:
wucnj
时间:
2014-7-1 10:34
感谢分享!!!
作者:
icerein
时间:
2014-7-1 12:47
感谢分享!!!
欢迎光临 纳金网 (http://old.narkii.com/club/)
Powered by Discuz! X2.5