using UnityEngine; using System.Collections; using UnityEngine.UI; using Newtonsoft.Json; using UnityEngine.Networking; using Utility; using System; using UnityEngine.Events; public class Timers : MonoBehaviour { public bool isRun = false; public float limitTime = 0; public float countTime = 0; public Text guiTimer; // 用于显示计时器的 Text 组件 public UnityEvent timeOver; // Start 方法在脚本激活时运行,用于初始化计时器 void Start() { StartCoroutine(LoadJSON(Application.streamingAssetsPath + "/Timer.config")); guiTimer.text = StringHelper.GetCountDownStr((int)countTime); } // 运行计时器 public void RunTimer() { isRun = true; } // 暂停或恢复计时器 public void PauseTimer() { isRun = false; } // 结束计时器 public void EndTimer() { isRun = false; } // Update 方法在每一帧运行,用于更新计时器的状态和显示 private void Update() { if (isRun) Timer(); } /// /// 计时 /// /// private void Timer() { guiTimer.text = StringHelper.GetCountDownStr((int)countTime); if (countTime < limitTime) { countTime += Time.deltaTime; guiTimer.text = "考试时间:"+StringHelper.GetCountDownStr((int)countTime); } else { //Debug.Log("计时结束"); timeOver?.Invoke(); isRun = false; } } IEnumerator LoadJSON(string fileName) { string sPath = fileName; using (UnityWebRequest oReq = UnityWebRequest.Get(sPath)) { yield return oReq.SendWebRequest(); if (!string.IsNullOrEmpty(oReq.error)) { Debug.Log("获取配置信息失败!"); yield break; } string json = oReq.downloadHandler.text; TimerSer settings = JsonConvert.DeserializeObject(json); limitTime = settings.Timer; //Debug.Log(limitTime); } } } public class TimerSer { public float Timer; }