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.
77 lines
2.2 KiB
77 lines
2.2 KiB
3 years ago
|
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;
|
||
|
}
|
||
|
}
|