首页 > 代码库 > Unity3D-简单的倒计时

Unity3D-简单的倒计时

using UnityEngine;
using System.Collections;

using System;

/*
 * 用法:新建一个场景,新建一个3D Text,把该3D Text的Transform重置一下,给它添加该脚本,运行即可
 */

public class TestTime : MonoBehaviour {

    private int currentPower = 5;//当前体力值
    private int maxPower = 10;//最大体力值
    private int powerUpdateTime = 70;//过多少秒赠送玩家体力值

    private  DateTime powerLastSaveTime;//体力值上次保存时间
    private DateTime targetTime;//目标时间

    void Start () {
        //初始化保存时间,可以在第一次进入游戏时保存,每次时间到了也要跟新
        powerLastSaveTime = DateTime.Now;
    }

    //使用了系统时间,游戏暂停了,时间也会继续更新
    void Update () {
        if (currentPower < maxPower)
        {
            targetTime = powerLastSaveTime.AddSeconds(powerUpdateTime);
            string time = targetTime.Subtract(DateTime.Now).ToString().Substring(3, 5);

            //时间到了,增加体力值,重新计时
            if (DateTime.Now >= targetTime)
            {
                powerLastSaveTime = DateTime.Now;
                currentPower++;
            }

            gameObject.GetComponent<TextMesh>().text = time;
        }
        else
        {
            Debug.Log("体力值已经最大");
        }
    }
}