using UnityEngine; using System.Collections; using System; using UnityEngine.UI; using AX.MessageSystem; public class TimeManager : MonoBehaviour { public static float RemainSeconds = -10;//记录当前考试的剩余时间 public static ExaminationInfo CurExam = null;//记录当前正在作答的考试 public static QuestionInfo CurQues = null;//记录当前选中的考题 public static float TipTime = 30; public static DateTime LastTime; public static event EventHandler TimeOutEvent; void Awake() { switch (ExamInfoHelpClass.loadSceneMode) { case ExamInfoHelpClass.LoadSceneMode.ExamineMode: case ExamInfoHelpClass.LoadSceneMode.CheckAnswer: TipTime = 30; break; case ExamInfoHelpClass.LoadSceneMode.MakeScore: TipTime = 0; break; default: TipTime = 100000; break; } var deltaTime = DateTime.Now - LastTime; RemainSeconds -= (float)deltaTime.TotalSeconds; } void Update() { if (RemainSeconds > TipTime) { RemainSeconds -= Time.deltaTime; if (RemainSeconds < 3600)//倒数一小时开始显示时间 { if (!transform.Find("TimeManager").gameObject.activeInHierarchy) { transform.Find("TimeManager").gameObject.SetActive(true); } ShowTimeAccordingSeconds((int)RemainSeconds); } } else//考试时间结束,自动交卷 { if (TimeOutEvent != null) { TimeOutEvent(this, EventArgs.Empty); } } } void ShowTimeAccordingSeconds(int second) { var hour = second / 3600; var min = (second % 3600) / 60; var sec = (second % 3600) % 60; transform.Find("TimeManager").Find("Time/Second").GetComponent().text = hour + ":" + min + ":" + sec; } void OnDestroy() { if (TimeOutEvent != null) { TimeOutEvent = null; } TipTime = 30; } }