unity+计时器,随时开启

复制代码
 // 定义定时器容器
    Dictionary<string, WaitForSecondsRealtime> RealtimeDict = new Dictionary<string, WaitForSecondsRealtime>();
    // 剩余时长
    private float timeRemaining;
 
    // 开始计时
    public void StartTimer(float duration)
    {
    
        timeRemaining = duration;
        RealtimeDict.Add("Realtime", new WaitForSecondsRealtime(timeRemaining));
        StartCoroutine(TrackTimeCoroutine());
        
    }
 
    // 跟踪时间的协程
    private IEnumerator TrackTimeCoroutine()
    {
        while (timeRemaining > 0)
        {
            // 等待一段实时时间
            WaitForSecondsRealtime timer = RealtimeDict["Realtime"];
            yield return timer;
            timeRemaining = 0;
            
    Debug.Log("定时器完成代码逻辑");
        }
    }
    
    // 更新time
    public void UpdateTime()
    {
        WaitForSecondsRealtime timer = RealtimeDict["Realtime"];
        if(timer != null){
            timer.Reset();
        }
        
    }
 
    // 获取剩余时长
    public float GetTimeRemaining()
    {
          return timeRemaining;
    }
 
复制代码

改良后:

复制代码
 float currentTime=0;

    
  
    // 剩余时长
    private float timeRemaining=0;

    // 开始计时
    public void StartTimer(float duration)
    {

        timeRemaining = duration;
        StartCoroutine(TrackTimeCoroutine());

    }

    // 跟踪时间的协程
    private IEnumerator TrackTimeCoroutine()
    {
        while (timeRemaining > 0)
        {
            // 等待一段实时时间
            WaitForSecondsRealtime timer = new WaitForSecondsRealtime(1);
            yield return timer;
            timeRemaining -= 1;
            Debug.LogWarning("定时器完成代码逻辑:GetTimeRemaining:" + GetTimeRemaining());

        }
        Debug.LogWarning("定时器完成代码逻辑:GetTimeRemaining:" + GetTimeRemaining());

    }

 

    // 获取剩余时长
    public float GetTimeRemaining()
    {
        return timeRemaining;
    }
复制代码

 

posted @   WalkingSnail  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示