用GUI实现倒计时:
方法一:利用Time.time,这是以秒计算到游戏开始的时间。也就是说,从游戏开始到到现在所用的时间。
代码如下:
using UnityEngine;using System.Collections;public class displayTime : MonoBehaviour{ //数值 public string myStringScore; public float x = 85; public float y = 19; public float scale = 1; public Color myColor; //定义数组 public Texture[] myNumber = new Texture[10]; //public Texture Tex; // private int index = 0; private int width = 30; private int height = 30; public float allTime = 100; public float countTime; void Start() { allTime = allTime + Time.time; } void FixedUpdate() { countTime = allTime - Time.time; //print(countTime); myStringScore = countTime.ToString(); if (countTime <= 0) { //游戏结束之后进行设置 countTime = 0; //Application.LoadLevelAdditive(4); //Application.Quit();//退出游戏 // print("countTime"); // return; } else { return; } } void Update() { } // Use this for initialization void OnGUI() { GUI.color = myColor; if (myStringScore != null) { for (int i = 0; i < myStringScore.Length; i++) { if (myStringScore.Substring(i, 1) == ".") { break; } GUI.DrawTexture(new Rect(x + i * scale * width, y, scale * width, scale * height), myNumber[int.Parse(myStringScore.Substring(i, 1))], ScaleMode.StretchToFill, true, 0); //GUI.DrawTexture(new Rect(x + i * scale * width, y, scale * width, scale * height),myNumber[myStringScore[i]-48]); } } }}
绑定代码到Camera上,设置倒计时10个数图片:
方法二:使用yield return new WaitForSeconds(1);等待1秒
using UnityEngine;using System.Collections;public class CoolTime : MonoBehaviour { // Use this for initialization void Start () { } int CoolTimes = 100; // Update is called once per frame void Update () { } void OnGUI() { GUILayout.Label(CoolTimes.ToString()); if (GUILayout.Button("Begin")) { StartCoroutine(waitForOneSecond()); } } public IEnumerator waitForOneSecond() { while (CoolTimes >= 0) { CoolTimes--; yield return new WaitForSeconds(1); } }}