using UnityEngine; using System.Collections.Generic; using System; using System.Xml.Serialization; using AX.TrackRecord; using System.Collections; using AX.MessageSystem; using UnityEngine.UI; using System.IO; using Video; public class TheBackView : MonoBehaviour { /** * 记录回放按钮 */ public static TheBackView instance; GameObject CameraGame; public Text NumSpeed; public Image StopImage;//时间轴中停止按钮 public float Sprielength; public GameObject TheGame; public GameObject TheFather; public Slider slider; bool kongzhi = true; public bool BckViewControl = true; TimeSpan TheDeltaTime; float X; EventRecordItem_two eventItem_I_D; float datetime = 0; float TheSumTime; public InputField ChangeIntro;//添加标签回放显示的输入框 private GameObject DeletBtn;//改变内容后保存的按钮 [HideInInspector] public GameObject ShowText;//回放标签弹框 private GameObject NowTagGame;//回放对应的标签 [HideInInspector] public GameObject TheBoFang;//播放的图片 [HideInInspector] public GameObject TheZanTing;//暂停的图片 private GameObject SaveBtn; [HideInInspector] public GameObject EndBtn; private Text TheShowText; public delegate void SpeedChangeHandler(SpeedChangeEventArgs e); public event SpeedChangeHandler SpeedChangeEvent; private bool TriggerSpeedChangeEventFlag = true; public const int OverSpeed = 100; private Toggle TheHideName;// 隐藏名称 public bool TheControl = true; bool IsMakingScore_PlayOver = false; bool lock_ = false; bool Back = false; bool Lock = false; float TheGameTime; public GameObject VidoSHOW; public GameObject PictSHOW; void Awake() { if (instance == null) { instance = this; } GameFind(); slider.value = 0; CameraGame = GameObject.Find("Main Camera").gameObject; ChangeIntro.onValueChanged.AddListener(delegate { ValueChangeCheck(); }); //添加事件,回放完毕后关闭时间轴 EndBtn = this.gameObject.transform.Find("End").gameObject; this.gameObject.SetActive(false); TheShowText = this.gameObject.transform.Find("隐藏名称/Background/Text").GetComponent(); TheHideName = this.gameObject.transform.Find("隐藏名称").GetComponent(); TheHideName.onValueChanged.AddListener(TheHideNameWay); } void Start() { LoadManager.Instance.PlayBackOverEvent += PlayBackOverFunc; MessageDispatcher.AddListener("ProcessSkipEvent", ProcessSkipEvent); } void OnDestroy() { MessageDispatcher.RemoveListener("ProcessSkipEvent", ProcessSkipEvent); } void FixedUpdate() { if (BckViewControl) //暂停的控制 { if (kongzhi) { datetime += Time.deltaTime * LoadManager.Instance.LoadSpeed/**/; slider.value = datetime / TheSumTime; } } } private void ProcessSkipEvent(IMessage msg) { //var time = (SkipEventAttri)msg.Data; //datetime = time.to + DictProcessHelpClass.threshold; //slider.value = datetime / TheSumTime; } public void ValueChangeCheck()//显示保存按钮 { } public void ChongZhi()//重置显示标签内弄事件 { } public void SaveChange()//保存修改 { } public void CheckAnswer() { this.gameObject.SetActive(true); } public void DeletTagBtn()//删除标签按钮 { ShowText.transform.Find("Delect").gameObject.SetActive(true); } public Transform FahterTag; public void DeletTagSure()//确定删除 { EventRecordItem_two eventI_id = NowTagGame.GetComponent().EventItem; LoadManager.Instance.record_Load.EventList.Remove(eventI_id); var key = DictProcessHelpClass.GetKeyFromTimer(eventI_id.timer); var eventListDic_keyList = LoadManager.Instance.eventListDic[key]; eventListDic_keyList.Remove(eventI_id); LoadManager.Instance.isChanged = true; ShowText.transform.Find("Delect").gameObject.SetActive(false); ShowText.SetActive(false); TheControl = true; LoadManager.Instance.IsPause = false; BckViewControl = true; TheBoFang.SetActive(true); TheZanTing.SetActive(false); foreach (Transform child in TheFather.transform)//标签物体上没有Image组件,为什么要获取它? { child.Find("TimeItem").GetComponent().raycastTarget = true; } Destroy(NowTagGame); } public void DeletTagClose()//取消删除 { ShowText.transform.Find("Delect").gameObject.SetActive(false); } private void PlayBackOverFunc(object sender, EventArgs e) { if (!((PlayBackEventArgs)e).IsMakeScore)//不是打分模式下,回放完毕直接关闭时间轴等 { gameObject.SetActive(false); if (GameObject.Find("AddTag")) GameObject.Find("AddTag").SetActive(false); EndView = false; } else//打分模式下,不能关闭时间轴等,而是重置状态,等待再次播放 { CheckCount(); ControlBtn(); IsMakingScore_PlayOver = true; EndView = false; } if (ExamInfoHelpClass.applicationMode == ExamInfoHelpClass.ApplicationMode.PATHFINDING) { GameObject.Find("Canvas").transform.Find("StorageWin").gameObject.SetActive(false); GameObject.Find("Canvas").transform.Find("BagWin").gameObject.SetActive(false); } MessageDispatcher.SendMessage("CLOSE", (object)"杂物清理界面", "CUBE"); MessageDispatcher.SendMessage("CLOSE", (object)"InsiderWind", "CUBE"); MessageDispatcher.SendMessage("CLOSE", (object)"PoChaiUI", "CUBE"); GameObject.Find("Canvas").transform.Find("NodeMessage").gameObject.SetActive(false); MessageDispatcher.SendMessage("ControlLeftEvent", (object)""); LoadManager.Instance.isChanged = false; CheckAutoBrowsing(null,0f,true); ExeSpeedChangeEvent(1); } /// /// 检测是否为自动播放 /// public void CheckAutoBrowsing(GameObject obj,float time,bool next) { if (AutoBrowsing.instance.Flag) { AutoBrowsing.instance.GetMessage(obj, time, next); } } public void ControlBtn() //暂停按钮 { if (TheControl) { TheControl = false; LoadManager.Instance.IsPause = true; foreach (Transform child in TheFather.transform) { child.transform.Find("TimeItem").gameObject.GetComponent().raycastTarget = true; } BckViewControl = false; TheBoFang.SetActive(false); TheZanTing.SetActive(true); ExeSpeedChangeEvent(0); Time.timeScale = 1; } else { TheControl = true; LoadManager.Instance.IsPause = false; LoadManager.Instance.RecordBtn = true; foreach (Transform child in TheFather.transform) { child.transform.Find("TimeItem").gameObject.GetComponent().raycastTarget = true; } SaveBtn.SetActive(false); ShowText.gameObject.SetActive(false); BckViewControl = true; TheBoFang.SetActive(true); TheZanTing.SetActive(false); GameObject.Find("Canvas").transform.Find("AddTag").GetComponent