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 加持,快人一步