倒计时工具类

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public enum TypeTime
{
    None = 0,
    循环
}

/// <summary>
/// 倒计时工具类
/// </summary>
public class STDBYTime
{

    private float _finaltime;   //暂时保存时间
    private float finaltime;
    private bool isStartTime = false;
    private Action mAction;

    /// <summary>
    /// 初始状态 设置默认时间
    /// </summary>
    /// <param name="mtime"> 默认时间 </param>
    public void StartInit(float mtime)
    {
        finaltime = mtime;
        _finaltime = finaltime;
        isStartTime = false;
    }

    /// <summary>
    /// 开始更新
    /// </summary>
    public void StartUpdate(TypeTime typeTime)
    {
        if (typeTime == TypeTime.None)
        {
            if (isStartTime)
            {
                if (finaltime > 0)
                {
                    finaltime -= Time.deltaTime;
                    if (finaltime <= 0)
                    {
                        if (mAction != null)
                            mAction();

                        isStartTime = false;
                        //HttpLink.httpLink.ReturnStandbyScene();
                        //Debug.Log("待机时间到回到待机模式");
                    }
                }
            }
        }
        else
        {
            if (isStartTime)
            {
                if (finaltime > 0)
                {
                    finaltime -= Time.deltaTime;
                    if (finaltime <= 0)
                    {
                        finaltime = _finaltime;
                        if (mAction != null)
                            mAction();
                        //HttpLink.httpLink.ReturnStandbyScene();
                        //Debug.Log("待机时间到回到待机模式");
                    }
                }
            }
        }

       
    }

    /// <summary>
    /// 开始倒计时
    /// </summary>
    public void StartTime()
    {
        isStartTime = true;
    }

    /// <summary>
    /// 重置倒计时
    /// </summary>
    public void ResetTime()
    {
        isStartTime = false;
        finaltime = _finaltime;
        Debug.Log($"重置时间:{finaltime}");
    }

    public void StopTime()
    {
        isStartTime = false;
    }

    /// <summary>
    /// 获取时间
    /// </summary>
    /// <returns></returns>
    public float GetFinaltime()
    {
        return finaltime;
    }

    /// <summary>
    /// 倒计时结束事件的委托
    /// </summary>
    public void EndAction(Action action)
    {
        mAction = action;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容