博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d游戏开发 —— 倒计时
阅读量:4926 次
发布时间:2019-06-11

本文共 2404 字,大约阅读时间需要 8 分钟。

用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);           }    }}

 

转载于:https://www.cnblogs.com/martianzone/p/3372256.html

你可能感兴趣的文章
Sublime 保存时自动转换tab成空格
查看>>
atom 插件 python语法验证linter-flake8-------填坑
查看>>
cuda中当元素个数超过线程个数时的处理案例
查看>>
转:PCL+VS2010环境配置
查看>>
volatile
查看>>
uploadify3.2.1加载时,报NetworkError 404 Not Found或NetworkError forbidden错误
查看>>
Vim 常用命令总结
查看>>
python中的数据类型(二)
查看>>
Android:scrollview与listview共存
查看>>
ImageLoader简介和使用方法
查看>>
重视知识的本质
查看>>
为什么linux驱动中变量或者函数都用static修饰?(知乎问题)
查看>>
课后作业2:个人项目
查看>>
初猎《梦断代码》
查看>>
短信SMS接口
查看>>
Angular滚动到底部自动加载
查看>>
do-while语句
查看>>
Multiple ComboBox的赋值取值
查看>>
永不消逝的电波
查看>>
ZC_float_测试
查看>>