using UnityEngine;
using System.Collections;
using System;
public class CountTime : MonoBehaviour {
public int totalSeconds = 60;
int leaveSeconds;
bool onCountDown = false;
string countDownTitle = "开始";
void Awake()
{
leaveSeconds =totalSeconds;
}
void OnGUI()
{
GUI.Button(new Rect(50, 50, 50,50), leaveSeconds.ToString());
if (GUI.Button(newRect(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()+",leaveseconds:"+leaveSeconds.ToString());
//if (onCountDown)
//{
// onCountDown = false;
//StartCoroutine(DoCountDown());
//}//一开始StartCoroutine是放在Update下触发的,需要加判断,并且要暂停的时候逻辑上不好控制,改到在OnGUI内鼠标点击后控制
}
IEnumerator DoCountDown()
{
while (leaveSeconds>0)
{
yield returnnew WaitForSeconds(1f);
leaveSeconds--;
}
}
}
【源码】倒计时脚本
最新推荐文章于 2021-06-20 15:28:47 发布