You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
76 lines
2.2 KiB
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>().text = hour + ":" + min + ":" + sec; |
|
} |
|
|
|
void OnDestroy() |
|
{ |
|
if (TimeOutEvent != null) |
|
{ |
|
TimeOutEvent = null; |
|
} |
|
TipTime = 30; |
|
} |
|
}
|
|
|