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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)