查看: 1707|回复: 3
打印 上一主题 下一主题

[其他] Unity_倒计时的代码

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-6-30 18:33:29 |只看该作者 |倒序浏览
  1. using UnityEngine;
  2. using System.Collections;
  3. using System;
  4. public class CountTime : MonoBehaviour {
  5.         // 初始化60s倒计时 //
  6.         public int totalSeconds = 60;
  7.         // 倒计时当前秒数 //
  8.         private int leaveSeconds;

  9.         private bool onCountDown = false;

  10.         private string countDownTitle = "开始";

  11.         void Awake()
  12.         {
  13.                 leaveSeconds = totalSeconds;
  14.         }
  15.         void OnGUI()
  16.         {
  17.                 GUI.Button(new Rect(50, 50, 50, 50), leaveSeconds.ToString());// 倒计时秒数 //

  18.                 if (GUI.Button(new Rect(150,50,80,30),countDownTitle))
  19.                 {
  20.                         if (countDownTitle == "开始")
  21.                         {
  22.                                 countDownTitle = "暂停";
  23.                                 onCountDown = true;
  24.                                 StartCoroutine(DoCountDown());
  25.                         }
  26.                         else
  27.                         {
  28.                                 countDownTitle = "开始";
  29.                                 onCountDown = false;
  30.                                 StopAllCoroutines(); //只要StartCoroutine后就一直存在,而且还会叠加。导致一秒要减你2,3,4...秒不等。所以在暂停的时候要StopAllCoroutines()
  31.                         }
  32.                 }
  33.         }
  34.         // Use this for initialization
  35.         void Start ()
  36.         {
  37.         }
  38.         // Update is called once per frame
  39.         void Update ()
  40.         {
  41.                 print(countDownTitle.ToString()+",leave seconds:"+leaveSeconds.ToString());// 每帧打印当前秒数 //
  42.                 //if (onCountDown)
  43.                 //{
  44.                 // onCountDown = false;
  45.                 // StartCoroutine(DoCountDown());
  46.                 //} //一开始StartCoroutine是放在Update下触发的,需要加判断,并且要暂停的时候逻辑上不好控制,改到在OnGUI内鼠标点击后控制
  47.         }
  48.         IEnumerator DoCountDown()
  49.         {
  50.                 while (leaveSeconds>0)
  51.                 {
  52.                         yield return new WaitForSeconds(1f);
  53.                         leaveSeconds--;//  当秒数>0 的时候, --
  54.                 }
  55.         }
  56. }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

115

主题

3

听众

5676

积分

高级设计师

Rank: 6Rank: 6

纳金币
7268
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-6-30 18:49:56 |只看该作者
Thanks for sharing !
回复

使用道具 举报

wucnj    

1

主题

1

听众

3160

积分

中级设计师

Rank: 5Rank: 5

纳金币
1065
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-7-1 10:34:58 |只看该作者
感谢分享!!!
回复

使用道具 举报

0

主题

1

听众

823

积分

初级设计师

Rank: 3Rank: 3

纳金币
80
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2014-7-1 12:47:33 |只看该作者
感谢分享!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-18 10:21 , Processed in 0.356607 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部