- 最后登录
- 2019-12-2
- 注册时间
- 2012-8-25
- 阅读权限
- 90
- 积分
- 34660
- 纳金币
- 38268
- 精华
- 111
|
- 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 的时候, --
- }
- }
- }
复制代码 |
|