简易计时器

       昨天写了一天项目规划书,到晚上实在不想写了,就想写几行代码。一时也不知道要写个什么东西,望了一眼办公室的挂钟,那就写个计时器吧,以后肯定也用得到。代码很简单,哈哈,大神勿见笑!

      下面上代码:


using UnityEngine;
/// <summary>
/// 计时器
/// </summary>
public class TimerC
{
    /// <summary>
    /// 计时器最近一次暂停时的累计时间
    /// </summary>
    private float cumulativeTime;
    /// <summary>
    /// 计时器状态(是否处于暂停状态)
    /// </summary>
    bool isPaused = true;
    /// <summary>
    /// 计时器状态(是否处于暂停状态)
    /// </summary>
    public bool IsPaused { get { return isPaused; } }//供外部查看计时器状态
    /// <summary>
    /// 计时器每次开始时的时刻
    /// </summary>
    float startTime;
    /// <summary>
    /// 计时器每次暂停时的时刻
    /// </summary>
    float pausedTime;

    /// <summary>
    /// 计时器的累计计时时间
    /// </summary>
    public float TimeOfTimer
    {
        get
        {
            if (!isPaused) return Time.fixedTime-startTime+cumulativeTime;
            else return cumulativeTime;
        }
    }

    public TimerC()
    {
        cumulativeTime = 0;
        startTime = 0;
        pausedTime = 0;
    }
    /// <summary>
    /// 开始计时
    /// </summary>
    public void Start()
    {
        if (!isPaused) return;
        isPaused = false;
        startTime = Time.fixedTime;
    }

    /// <summary>
    /// 暂停计时
    /// </summary>
    public void Pause()
    {
        if (isPaused) return;
        isPaused = true;
        pausedTime = Time.fixedTime;

        cumulativeTime += pausedTime - startTime;
    }

}

接着是简易测试代码:

using UnityEngine;
using System.Collections;
using HMLTools;
using System;

public class Test : MonoBehaviour {
    
    TimerC t;
	void Start () {
        t = new TimerC();
	}
	
	// Update is called once per frame
	void Update () {
        if (Input.GetKeyDown(KeyCode.S))
        {
            t.Start();
        }
        else if (Input.GetKeyDown(KeyCode.P))
        {
            t.Pause();
        }
        Debug.Log(t.TimeOfTimer);
	}
}





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值