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.
891 lines
38 KiB
891 lines
38 KiB
3 years ago
|
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<Text>();
|
||
|
TheHideName = this.gameObject.transform.Find("隐藏名称").GetComponent<Toggle>();
|
||
|
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<GetTheJieDian>().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<Image>().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);
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// 检测是否为自动播放
|
||
|
/// </summary>
|
||
|
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<Image>().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<Image>().raycastTarget = true;
|
||
|
}
|
||
|
SaveBtn.SetActive(false);
|
||
|
ShowText.gameObject.SetActive(false);
|
||
|
BckViewControl = true;
|
||
|
TheBoFang.SetActive(true);
|
||
|
TheZanTing.SetActive(false);
|
||
|
GameObject.Find("Canvas").transform.Find("AddTag").GetComponent<Button>().enabled = true;
|
||
|
ShowText.transform.Find("Delect").gameObject.SetActive(false);
|
||
|
GameObject.Find("Canvas").transform.Find("考试记录展示评判").gameObject.SetActive(false);
|
||
|
//打分模式下播放到头,点击开始按钮时多处理一步
|
||
|
if (IsMakingScore_PlayOver)
|
||
|
{
|
||
|
IsMakingScore_PlayOver = false;
|
||
|
MessageDispatcher.SendMessage("CloseToolbar", (object)this.name);
|
||
|
MessageDispatcher.SendMessage("ResettingButton", (object)this.name);
|
||
|
MessageDispatcher.SendMessage("RESET_OILTANKDISASTER_ATRRI", (object)"All");//重置罐体属性
|
||
|
//TrackRecordHelpClass.LoadObjSetToOriginalTrans(LoadManager.Instance.record_Load);
|
||
|
LoadManager.Instance.LoadObjSetToOriginalTrans(LoadManager.Instance.record_Load);
|
||
|
}
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore || ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.CheckAnswer)
|
||
|
{
|
||
|
EndBtn.SetActive(true);
|
||
|
}
|
||
|
|
||
|
ExeSpeedChangeEvent(LoadManager.Instance.LoadSpeed);
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore && LoadManager.Instance.IsPlayBacking && AddRecordTag.Instance.TheScorePlane.activeInHierarchy)
|
||
|
{
|
||
|
AddRecordTag.Instance.TheScorePlane.SetActive(false);
|
||
|
AddRecordTag.Instance.DiaoYong();
|
||
|
}
|
||
|
Time.timeScale = 1;
|
||
|
AutoBrowsing.instance.Game = null;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
public void BoFang()
|
||
|
{
|
||
|
GameFind();
|
||
|
TheControl = true;
|
||
|
LoadManager.Instance.IsPause = false;
|
||
|
LoadManager.Instance.RecordBtn = true;
|
||
|
foreach (Transform child in TheFather.transform)
|
||
|
{
|
||
|
child.transform.Find("TimeItem").gameObject.GetComponent<Image>().raycastTarget = true;
|
||
|
}
|
||
|
if (GameObject.Find("Canvas").transform.Find("AddTag").gameObject.activeInHierarchy)
|
||
|
{
|
||
|
AddRecordTag.Instance.ThisButton.enabled = true;
|
||
|
}
|
||
|
ShowText.gameObject.SetActive(false);
|
||
|
SaveBtn.SetActive(false);
|
||
|
BckViewControl = true;
|
||
|
TheBoFang.SetActive(true);
|
||
|
TheZanTing.SetActive(false);
|
||
|
ShowText.transform.Find("Delect").gameObject.SetActive(false);
|
||
|
AutoBrowsing.instance.Game = null;
|
||
|
}
|
||
|
public void GameFind()
|
||
|
{
|
||
|
ShowText = GameObject.Find("Canvas").transform.Find("ShowText").gameObject;
|
||
|
SaveBtn = ShowText.transform.Find("SaveBtn").gameObject;
|
||
|
DeletBtn = ShowText.transform.Find("MaskSet/ShanChuBtn").gameObject;
|
||
|
TheBoFang = this.gameObject.transform.Find("Control").Find("BoFang").gameObject;
|
||
|
TheZanTing = this.gameObject.transform.Find("Control").Find("ZanTing").gameObject;
|
||
|
}
|
||
|
public void ZanTing()
|
||
|
{
|
||
|
TheControl = false;
|
||
|
LoadManager.Instance.IsPause = true;
|
||
|
foreach (Transform child in TheFather.transform)
|
||
|
{
|
||
|
child.transform.Find("TimeItem").gameObject.GetComponent<Image>().raycastTarget = true;
|
||
|
}
|
||
|
BckViewControl = false;
|
||
|
TheBoFang.SetActive(false);
|
||
|
TheZanTing.SetActive(true);
|
||
|
}
|
||
|
public void TheHideNameWay(bool check)// 隐藏名称
|
||
|
{
|
||
|
if (TheShowText.text == "隐藏名称")
|
||
|
{
|
||
|
TheShowText.text = "显示名称";
|
||
|
UIController.instance.NameControl = false;
|
||
|
MessageDispatcher.SendMessage("NameControl", (object)false);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
TheShowText.text = "隐藏名称";
|
||
|
UIController.instance.NameControl = true;
|
||
|
MessageDispatcher.SendMessage("NameControl", (object)true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void LookGo(float time )//查看任务改变
|
||
|
{
|
||
|
Back = true;
|
||
|
TheGameTime = time;
|
||
|
MessageDispatcher.SendMessage("ProcessSkipEvent", new SkipEventAttri { from = datetime, to = TheGameTime });
|
||
|
}
|
||
|
public void CheckCount() //查看点数
|
||
|
{
|
||
|
NumSpeed.text = "1";//默认为1
|
||
|
LoadManager.Instance.LoadSpeed = 1; //默认为1
|
||
|
slider.value = 0;
|
||
|
datetime = 0;
|
||
|
TheSumTime = LoadManager.Instance.record_Load.SumTime;//yhd
|
||
|
kongzhi = true;
|
||
|
foreach (Transform child in TheFather.transform) //首先删除所有标签
|
||
|
{
|
||
|
Destroy(child.gameObject);
|
||
|
}
|
||
|
var EventList = LoadManager.Instance.record_Load.EventList;
|
||
|
|
||
|
float TheDeltaTime = TheSumTime;
|
||
|
Sprielength = slider.gameObject.transform.GetComponent<RectTransform>().rect.width;//时间轴长度
|
||
|
|
||
|
|
||
|
foreach (var key in LoadManager.Instance.eventListDic.Keys)
|
||
|
{
|
||
|
if (LoadManager.Instance.eventListDic[key].Count > 0)
|
||
|
{
|
||
|
|
||
|
var EvenList = DictProcessHelpClass.GetUniqList(LoadManager.Instance.eventListDic[key]);
|
||
|
|
||
|
for (int x = 0; x < EvenList.Count; x++)
|
||
|
{
|
||
|
EventRecordItem_two Event = EvenList[x] as EventRecordItem_two;
|
||
|
if (Event.eventType == eventTypeRecord.AddRecordTag ||
|
||
|
(Event.eventType == eventTypeRecord.AddLoadTag && (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.PrepareModeLook ||
|
||
|
ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.EditCourceware))
|
||
|
)
|
||
|
{
|
||
|
GameObject Game = Instantiate(TheGame) as GameObject;
|
||
|
Game.transform.SetParent(TheFather.transform);
|
||
|
Game.transform.localScale = new Vector3(1, 1, 1);
|
||
|
float GameTime = Event.timer;
|
||
|
Game.GetComponent<RectTransform>().anchoredPosition = new Vector2((GameTime / TheDeltaTime) * Sprielength, 0);
|
||
|
Game.GetComponent<GetTheJieDian>().EventItem = Event;
|
||
|
Game.transform.Find("Text").GetComponent<Text>().text = Event.objAttriList[0].ObjName.ToString();
|
||
|
if (Event.eventType == eventTypeRecord.AddGpcAUTOTag)
|
||
|
{
|
||
|
Game.name = "zidong";
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.CheckScore)
|
||
|
{
|
||
|
var List = LoadManager.Instance.eventListDic.GetEventListFromDict(GameTime, Event.eventType);
|
||
|
int num = 0;
|
||
|
for (int i = 0; i < List.Count; i++)
|
||
|
{
|
||
|
if (List[i].objAttriList[0].ObjName != "")
|
||
|
{
|
||
|
num += int.Parse(List[i].objAttriList[0].ObjName);
|
||
|
}
|
||
|
}
|
||
|
Game.transform.Find("Text").GetComponent<Text>().text = num.ToString();
|
||
|
}
|
||
|
}
|
||
|
if (Event.eventType == eventTypeRecord.AddRecordTag)
|
||
|
{
|
||
|
Game.transform.Find("TimeItem").GetComponent<Image>().color = Color.green;
|
||
|
if (Event.objAttriList[0].modeadd == ModelADD.Video)
|
||
|
{
|
||
|
Game.transform.Find("Show").Find("Video").gameObject.SetActive(true);
|
||
|
}
|
||
|
else if (Event.objAttriList[0].modeadd == ModelADD.Pict)
|
||
|
{
|
||
|
Game.transform.Find("Show").Find("Picture").gameObject.SetActive(true);
|
||
|
Texture2D texture =CreatTexture(ExamInfoHelpClass.PictureFilePath+Event.objAttriList[0].PictureFile);//fileName1
|
||
|
Sprite sprite_ = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
|
||
|
Game.transform.Find("Show").Find("Picture").GetComponent<Image>().sprite = sprite_;
|
||
|
}
|
||
|
else if (Event.objAttriList[0].modeadd == ModelADD.All)
|
||
|
{
|
||
|
Game.transform.Find("Show").Find("Picture").gameObject.SetActive(true);
|
||
|
Game.transform.Find("Show").Find("Video").gameObject.SetActive(true);
|
||
|
Texture2D texture = CreatTexture(ExamInfoHelpClass.PictureFilePath + Event.objAttriList[0].PictureFile);//fileName1
|
||
|
Sprite sprite_ = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
|
||
|
Game.transform.Find("Show").Find("Picture").GetComponent<Image>().sprite = sprite_;
|
||
|
}
|
||
|
}
|
||
|
if (Event.eventType == eventTypeRecord.AddLoadTag)
|
||
|
{
|
||
|
Game.transform.Find("TimeItem").GetComponent<Image>().color = Color.green;
|
||
|
if (Event.objAttriList[0].modeadd == ModelADD.Video)
|
||
|
{
|
||
|
Game.transform.Find("Show").Find("Video").gameObject.SetActive(true);
|
||
|
}
|
||
|
else if (Event.objAttriList[0].modeadd == ModelADD.Pict)
|
||
|
{
|
||
|
Game.transform.Find("Show").Find("Picture").gameObject.SetActive(true);
|
||
|
Texture2D texture = CreatTexture(ExamInfoHelpClass.PictureFilePath + Event.objAttriList[0].PictureFile);//fileName1
|
||
|
Sprite sprite_ = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
|
||
|
Game.transform.Find("Show").Find("Picture").GetComponent<Image>().sprite = sprite_;
|
||
|
}
|
||
|
else if (Event.objAttriList[0].modeadd == ModelADD.All)
|
||
|
{
|
||
|
Game.transform.Find("Show").Find("Picture").gameObject.SetActive(true);
|
||
|
Game.transform.Find("Show").Find("Video").gameObject.SetActive(true);
|
||
|
Texture2D texture = CreatTexture(ExamInfoHelpClass.PictureFilePath + Event.objAttriList[0].PictureFile);//fileName1
|
||
|
Sprite sprite_ = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
|
||
|
Game.transform.Find("Show").Find("Picture").GetComponent<Image>().sprite = sprite_;
|
||
|
}
|
||
|
}
|
||
|
if (Event.eventType == eventTypeRecord.ZongJiePingPanTag)
|
||
|
{
|
||
|
Game.name = "zidong_ZJ";
|
||
|
|
||
|
if (Event.ScoreAttri.Count > 0)
|
||
|
{
|
||
|
Game.transform.Find("Text").GetComponent<Text>().text = Event.ScoreAttri[0].AllScore.ToString();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Game.transform.Find("Text").GetComponent<Text>().text = "";
|
||
|
}
|
||
|
Game.GetComponent<Image>().color = Color.white;
|
||
|
ZiDongPingPan.Instance.GetMessage(Game);
|
||
|
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.CheckScore)
|
||
|
{
|
||
|
var List = LoadManager.Instance.eventListDic.GetEventListFromDict(GameTime, Event.eventType);
|
||
|
int num = 0;
|
||
|
for (int i = 0; i < List.Count; i++)
|
||
|
{
|
||
|
if (List[i].ScoreAttri.Count != 0)
|
||
|
{
|
||
|
num += List[i].ScoreAttri[0].AllScore;
|
||
|
}
|
||
|
}
|
||
|
Game.transform.Find("Text").GetComponent<Text>().text = num.ToString();
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
if (Game.transform.Find("Text").GetComponent<Text>().text.Equals("0"))
|
||
|
{
|
||
|
Game.transform.Find("Text").GetComponent<Text>().text = "";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
public static Texture2D CreatTexture(string filename)
|
||
|
{
|
||
|
//创建文件读取流
|
||
|
FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||
|
fileStream.Seek(0, SeekOrigin.Begin);
|
||
|
//创建文件缓冲区
|
||
|
byte[] bytes = new byte[fileStream.Length];
|
||
|
Debug.Log(bytes.Length);
|
||
|
//读取文件
|
||
|
fileStream.Read(bytes, 0, (int)fileStream.Length);
|
||
|
//释放文件读取流
|
||
|
fileStream.Close();
|
||
|
fileStream.Dispose();
|
||
|
fileStream = null;
|
||
|
|
||
|
int width = 1024;//1024
|
||
|
int height = 1024;//1024
|
||
|
Texture2D texture = new Texture2D(width, height);
|
||
|
|
||
|
//Texture2D texture = new Texture2D(width, height, TextureFormat.ETC_RGB4, false);
|
||
|
texture.LoadImage(bytes);
|
||
|
//texture.Compress(false);
|
||
|
|
||
|
//texture = TextureScale.Bilinear(texture, width, height, false, false);
|
||
|
|
||
|
return texture;
|
||
|
}
|
||
|
bool TagFlag = false;
|
||
|
public void ClickJieDianApect(EventRecordItem_two eventI)
|
||
|
{
|
||
|
eventItem_I_D = eventI;
|
||
|
BckViewControl = false;
|
||
|
TagFlag = true;
|
||
|
BackApect(eventI);
|
||
|
}
|
||
|
public bool checkItme = false;
|
||
|
|
||
|
public void BackApect(EventRecordItem_two eventItem) //生成事件的回调(recordManager)对应Silder的变化
|
||
|
{
|
||
|
|
||
|
if (!EndView)
|
||
|
{
|
||
|
eventItem_I_D = eventItem;
|
||
|
MessageDispatcher.SendMessage("CLOSE", (object)"杂物清理界面", "CUBE");
|
||
|
MessageDispatcher.SendMessage("CLOSE", (object)"InsiderWind", "CUBE");
|
||
|
MessageDispatcher.SendMessage("CLOSE", (object)"PoChaiUI", "CUBE");
|
||
|
if (ExamInfoHelpClass.applicationMode == ExamInfoHelpClass.ApplicationMode.PATHFINDING)
|
||
|
{
|
||
|
GameObject.Find("Canvas").transform.Find("StorageWin").gameObject.SetActive(false);
|
||
|
GameObject.Find("Canvas").transform.Find("BagWin").gameObject.SetActive(false);
|
||
|
}
|
||
|
//标签
|
||
|
ArrayList list_ = new ArrayList();
|
||
|
if (eventItem.eventType != eventTypeRecord.AddRecordTag)
|
||
|
{
|
||
|
ShowText.SetActive(false);
|
||
|
}
|
||
|
foreach (Transform child in TheFather.transform) //遍历所以节点
|
||
|
{
|
||
|
list_.Add(child.gameObject);
|
||
|
}
|
||
|
|
||
|
for (int i = 0; i < list_.Count; i++)
|
||
|
{
|
||
|
GameObject ob = list_[i] as GameObject;
|
||
|
var item = ob.GetComponent<GetTheJieDian>().EventItem;
|
||
|
if (item == eventItem)
|
||
|
{
|
||
|
NowTagGame = ob;
|
||
|
//MouseFollowRotation.Instance.CameraAttri = eventItem.camAttributeList[0];
|
||
|
if (eventItem.orthographic)
|
||
|
{
|
||
|
MouseFollowRotation.Instance.CameraAttri = eventItem.camAttributeList[0];
|
||
|
MouseFollowRotation.Instance.Index = 1;
|
||
|
MessageDispatcher.SendMessage("TabChangeView");
|
||
|
Camera.main.orthographicSize = eventItem.size;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
MouseFollowRotation.Instance.Index = 0;
|
||
|
MessageDispatcher.SendMessage("TabChangeView");
|
||
|
MouseFollowRotation.Instance.CameraAttri = eventItem.camAttributeList[0];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (NowTagGame !=null && !NowTagGame.GetComponent<GetTheJieDian>().canExeFlag)
|
||
|
return;
|
||
|
if (eventItem.eventType == eventTypeRecord.AddFilterTag)
|
||
|
{
|
||
|
StartCoroutine(LoadObjSetToOriginalTransTag(eventItem));
|
||
|
}
|
||
|
if (eventItem.eventType == eventTypeRecord.AddLoadTag || eventItem.eventType == eventTypeRecord.AddRecordTag)
|
||
|
{
|
||
|
TreeShowNode.Instance.gameObject.transform.parent.gameObject.SetActive(false);
|
||
|
if (eventItem.eventType == eventTypeRecord.AddLoadTag)
|
||
|
{
|
||
|
if (TagFlag)
|
||
|
{
|
||
|
StartCoroutine(LoadObjSetToOriginalTransTag(eventItem));
|
||
|
TagFlag = false;
|
||
|
}
|
||
|
ShowText.SetActive(true);
|
||
|
AddRecordTag.Instance.TheScorePlane.SetActive(false);
|
||
|
EditNodePlane.instance.GetBaoQian(eventItem_I_D,NowTagGame);
|
||
|
ShowText.transform.Find("Scroll View/Viewport/InputField").GetComponent<InputField>().text =
|
||
|
eventItem.objAttriList[0].TaskName.ToString();
|
||
|
ShowText.transform.Find("Scroll View").gameObject.SetActive(true);
|
||
|
if (ShowText.transform.Find("Scroll View/Viewport/InputField").GetComponent<InputField>().text.Equals(""))
|
||
|
{
|
||
|
ShowText.transform.Find("Scroll View").gameObject.SetActive(false);
|
||
|
}
|
||
|
ShowText.GetComponent<TagShowUIWithMode>().CheckMode(true);
|
||
|
AddRecordTag.Instance.OBJ = null;
|
||
|
MessageDispatcher.SendMessage("LeftShowEvent", eventItem.objAttriList[0]);
|
||
|
}
|
||
|
if (eventItem.eventType == eventTypeRecord.AddRecordTag)
|
||
|
{
|
||
|
if (TagFlag)
|
||
|
{
|
||
|
StartCoroutine(LoadObjSetToOriginalTransTag(eventItem));
|
||
|
TagFlag = false;
|
||
|
}
|
||
|
ShowText.SetActive(true);
|
||
|
EditNodePlane.instance.GetBaoQian(eventItem_I_D, NowTagGame);
|
||
|
AddRecordTag.Instance.TheScorePlane.SetActive(false);
|
||
|
ShowText.transform.Find("Scroll View/Viewport/InputField").GetComponent<InputField>().text =
|
||
|
eventItem.objAttriList[0].TaskName.ToString();
|
||
|
ShowText.transform.Find("Scroll View").gameObject.SetActive(true);
|
||
|
if (ShowText.transform.Find("Scroll View/Viewport/InputField").GetComponent<InputField>().text.Equals(""))
|
||
|
{
|
||
|
ShowText.transform.Find("Scroll View").gameObject.SetActive(false);
|
||
|
}
|
||
|
ShowText.GetComponent<TagShowUIWithMode>().CheckMode(true);
|
||
|
AddRecordTag.Instance.OBJ = null;
|
||
|
MessageDispatcher.SendMessage("LeftShowEvent", eventItem.objAttriList[0]);
|
||
|
//if (eventItem.objAttriList[0].modeadd == ModelADD.Video)
|
||
|
//{
|
||
|
// VCR._videoFiles = eventItem.objAttriList[0].VideoFile;
|
||
|
// VCR.Instance().StartPlayer();
|
||
|
//}
|
||
|
ShowText.SetActive(true);
|
||
|
}
|
||
|
if (ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.CheckScore)
|
||
|
{
|
||
|
AddRecordTag.Instance.gameObject.GetComponent<Button>().enabled = false;
|
||
|
}
|
||
|
|
||
|
foreach (Transform child in TheFather.transform)
|
||
|
{
|
||
|
child.transform.Find("TimeItem").gameObject.GetComponent<Image>().raycastTarget = true;
|
||
|
}
|
||
|
TheBoFang.SetActive(false);
|
||
|
TheZanTing.SetActive(true);
|
||
|
|
||
|
TheControl = false;
|
||
|
LoadManager.Instance.IsPause = true;
|
||
|
BckViewControl = false;
|
||
|
datetime = eventItem.timer;
|
||
|
slider.value = (datetime) / TheSumTime;
|
||
|
|
||
|
CheckAutoBrowsing(NowTagGame, 5f, false);
|
||
|
|
||
|
}
|
||
|
if (eventItem.eventType == eventTypeRecord.AddGpcAUTOTag)
|
||
|
{
|
||
|
if (TagFlag)
|
||
|
{
|
||
|
StartCoroutine(LoadObjSetToOriginalTransTag(eventItem));
|
||
|
TagFlag = false;
|
||
|
}
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore)
|
||
|
{
|
||
|
AddRecordTag.Instance.TheScorePlane.SetActive(true);
|
||
|
AddRecordTag.Instance.TheScorePlane.transform.Find("Delete").gameObject.SetActive(false);
|
||
|
AddRecordTag.Instance.TheScorePlane.transform.Find("InputIntro").GetComponent<InputField>().text =
|
||
|
eventItem.objAttriList[0].TaskName.ToString();
|
||
|
AddRecordTag.Instance.TheScorePlane.transform.Find("InputName").GetComponent<InputField>().text =
|
||
|
eventItem.objAttriList[0].ObjName.ToString();
|
||
|
AddRecordTag.Instance.OBJ = NowTagGame;
|
||
|
AddRecordTag.Instance.gameObject.GetComponent<Button>().enabled = false;
|
||
|
}
|
||
|
else if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.CheckScore)
|
||
|
{
|
||
|
var List = LoadManager.Instance.eventListDic.GetEventListFromDict(eventItem.timer, eventItem.eventType);
|
||
|
if (List.Count== 1)
|
||
|
{
|
||
|
ShowText.SetActive(true);
|
||
|
ShowText.transform.Find("Scroll View/Viewport/InputField").GetComponent<InputField>().text =
|
||
|
eventItem.objAttriList[0].TaskName.ToString();
|
||
|
ShowText.GetComponent<TagShowUIWithMode>().CheckMode(true);
|
||
|
}
|
||
|
else if (List.Count > 1)
|
||
|
{
|
||
|
TreeShowNode.Instance.gameObject.transform.parent.gameObject.SetActive(true);
|
||
|
TreeShowNode.Instance.AddNodes(List);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
foreach (Transform child in TheFather.transform)
|
||
|
{
|
||
|
child.gameObject.GetComponent<Image>().raycastTarget = false;
|
||
|
}
|
||
|
TheBoFang.SetActive(false);
|
||
|
TheZanTing.SetActive(true);
|
||
|
|
||
|
TheControl = false;
|
||
|
LoadManager.Instance.IsPause = true;
|
||
|
BckViewControl = false;
|
||
|
datetime = eventItem.timer;
|
||
|
slider.value = (datetime) / TheSumTime;
|
||
|
|
||
|
}
|
||
|
//评分查看任务变化
|
||
|
if (eventItem.eventType == eventTypeRecord.TaskChange && ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore)
|
||
|
{
|
||
|
if (checkItme && eventItem_I_D == eventItem)
|
||
|
{
|
||
|
foreach (Transform child in TheFather.transform)
|
||
|
{
|
||
|
child.gameObject.GetComponent<Image>().raycastTarget = false;
|
||
|
}
|
||
|
TheBoFang.SetActive(false);
|
||
|
TheZanTing.SetActive(true);
|
||
|
TheControl = false;
|
||
|
LoadManager.Instance.IsPause = true;
|
||
|
BckViewControl = false;
|
||
|
checkItme = false;
|
||
|
datetime = eventItem.timer;
|
||
|
slider.value = (datetime) / TheSumTime;
|
||
|
}
|
||
|
}
|
||
|
ZongJieTag(eventItem);
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private IEnumerator LoadObjSetToOriginalTransTag(EventRecordItem_two eventAttri)
|
||
|
{
|
||
|
MessageDispatcher.SendMessage("DestroyObj", (object)"All");
|
||
|
InputManager.Instance_.characters.Clear();
|
||
|
MessageDispatcher.SendMessage("RESET_OILTANKDISASTER_ATRRI", (object)"All");//重置所有罐体
|
||
|
yield return null;
|
||
|
TrackRecordHelpClass.LoadObjSetToOriginalTransTag(eventAttri);
|
||
|
}
|
||
|
|
||
|
public void ZongJieTag(EventRecordItem_two eventItem)//处理总结标签 待-----
|
||
|
{
|
||
|
if (eventItem.eventType == eventTypeRecord.ZongJiePingPanTag)
|
||
|
{
|
||
|
if (TagFlag)
|
||
|
{
|
||
|
StartCoroutine(LoadObjSetToOriginalTransTag(eventItem));
|
||
|
TagFlag = false;
|
||
|
}
|
||
|
foreach (Transform child in TheFather.transform)
|
||
|
{
|
||
|
child.gameObject.GetComponent<Image>().raycastTarget = false;
|
||
|
}
|
||
|
|
||
|
|
||
|
MessageDispatcher.SendMessage("CLOSE", (object)"AddScoreTag", "CUBE");
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore)
|
||
|
{
|
||
|
MessageDispatcher.SendMessage("OPEN", (object)"自动评判", "CUBE");
|
||
|
}
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.CheckScore)
|
||
|
{
|
||
|
var List = LoadManager.Instance.eventListDic.GetEventListFromDict(eventItem.timer, eventItem.eventType);
|
||
|
if (List.Count == 1)
|
||
|
{
|
||
|
MessageDispatcher.SendMessage("OPEN", (object)"自动评判", "CUBE");
|
||
|
ZiDongPingPan.Instance.Surebtn.gameObject.SetActive(false);
|
||
|
ZiDongPingPan.Instance.PingBi.SetActive(true);
|
||
|
}
|
||
|
else if (List.Count>0)
|
||
|
{
|
||
|
TreeShowNode.Instance.gameObject.transform.parent.gameObject.SetActive(true);
|
||
|
TreeShowNode.Instance.AddNodes(List);
|
||
|
}
|
||
|
}
|
||
|
TheBoFang.SetActive(false);
|
||
|
TheZanTing.SetActive(true);
|
||
|
TheControl = false;
|
||
|
LoadManager.Instance.IsPause = true;
|
||
|
BckViewControl = false;
|
||
|
datetime = eventItem.timer;
|
||
|
slider.value = (datetime) / TheSumTime;
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
public void AddSpeed()//加速
|
||
|
{
|
||
|
if (LoadManager.Instance.IsPause)
|
||
|
{
|
||
|
MessageDispatcher.SendMessage("Operatinghints", (object)"播放可以调整速度");
|
||
|
return;
|
||
|
}
|
||
|
int Num = int.Parse(NumSpeed.text);
|
||
|
if (Num == 1)
|
||
|
{
|
||
|
NumSpeed.text = "2";
|
||
|
LoadManager.Instance.LoadSpeed = 2;
|
||
|
}
|
||
|
else if (Num == 2)
|
||
|
{
|
||
|
NumSpeed.text = "4";
|
||
|
LoadManager.Instance.LoadSpeed = 4;
|
||
|
}
|
||
|
else if (Num == 4)
|
||
|
{
|
||
|
NumSpeed.text = "8";
|
||
|
LoadManager.Instance.LoadSpeed = 8;
|
||
|
}
|
||
|
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore)
|
||
|
{
|
||
|
int num = int.Parse(NumSpeed.text);
|
||
|
MakeSorceSet.instance.Speed = num;
|
||
|
}
|
||
|
ExeSpeedChangeEvent(LoadManager.Instance.LoadSpeed);
|
||
|
}
|
||
|
public void ExeSpeedChangeEvent(int speed)
|
||
|
{
|
||
|
LoadManager.Instance.speedFactor = speed;
|
||
|
AgentRecord.speedFactor = speed;
|
||
|
VCR._mediaPlayer.Control.SetPlaybackRate(speed);
|
||
|
if (SpeedChangeEvent != null)
|
||
|
{
|
||
|
SpeedChangeEvent(new SpeedChangeEventArgs(speed));
|
||
|
}
|
||
|
}
|
||
|
public void LessonSpeed()//减速
|
||
|
{
|
||
|
if (LoadManager.Instance.IsPause)
|
||
|
{
|
||
|
MessageDispatcher.SendMessage("Operatinghints", (object)"播放可以调整速度");
|
||
|
return;
|
||
|
}
|
||
|
int Num = int.Parse(NumSpeed.text);
|
||
|
if (Num == 8)
|
||
|
{
|
||
|
NumSpeed.text = "4";
|
||
|
LoadManager.Instance.LoadSpeed =4;
|
||
|
}
|
||
|
else if (Num == 4)
|
||
|
{
|
||
|
NumSpeed.text = "2";
|
||
|
LoadManager.Instance.LoadSpeed = 2;
|
||
|
}
|
||
|
else if (Num == 2)
|
||
|
{
|
||
|
NumSpeed.text = "1";
|
||
|
LoadManager.Instance.LoadSpeed = 1;
|
||
|
}
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore)
|
||
|
{
|
||
|
int num = int.Parse(NumSpeed.text);
|
||
|
MakeSorceSet.instance.Speed = num;
|
||
|
}
|
||
|
ExeSpeedChangeEvent(LoadManager.Instance.LoadSpeed);
|
||
|
}
|
||
|
[HideInInspector]
|
||
|
public bool EndView = false;
|
||
|
int Index;
|
||
|
public void EndBackView()//结束播放
|
||
|
{
|
||
|
if (GameObject.Find("Canvas").transform.Find("AddTag").Find("AddScoreTag").gameObject.activeInHierarchy)
|
||
|
{
|
||
|
MessageDispatcher.SendMessage("Operatinghints", (object)"打分中无法结束");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
TriggerSpeedChangeEventFlag = false;
|
||
|
|
||
|
TheControl = true;
|
||
|
LoadManager.Instance.IsPause = false;
|
||
|
foreach (Transform child in TheFather.transform)
|
||
|
{
|
||
|
child.transform.Find("TimeItem").gameObject.GetComponent<Image>().raycastTarget = true;
|
||
|
}
|
||
|
ShowText.gameObject.SetActive(false);
|
||
|
ShowText.transform.Find("Delect").gameObject.SetActive(false);
|
||
|
SaveBtn.SetActive(false);
|
||
|
BckViewControl = true;
|
||
|
TheBoFang.SetActive(true);
|
||
|
TheZanTing.SetActive(false);
|
||
|
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore)
|
||
|
{
|
||
|
EndBtn.SetActive(false);
|
||
|
GameObject.Find("Canvas").transform.Find("AddTag").Find("AddScoreTag").gameObject.SetActive(false);
|
||
|
}
|
||
|
EndView = true;
|
||
|
MessageDispatcher.SendMessage("ProcessSkipEvent", new SkipEventAttri { from = datetime, to = TheSumTime });
|
||
|
LoadManager.Instance.LoadObjSetToOriginalTransTag();
|
||
|
LoadManager.Instance.RecordBtn = true;
|
||
|
LoadManager.Instance.IsPause = false;
|
||
|
}
|
||
|
public void MakeSoreEnd()
|
||
|
{
|
||
|
|
||
|
TheControl = true;
|
||
|
LoadManager.Instance.IsPause = false;
|
||
|
ShowText.gameObject.SetActive(false);
|
||
|
ShowText.transform.Find("Delect").gameObject.SetActive(false);
|
||
|
SaveBtn.SetActive(false);
|
||
|
TheBoFang.SetActive(true);
|
||
|
TheZanTing.SetActive(false);
|
||
|
if (ExamInfoHelpClass.loadSceneMode == ExamInfoHelpClass.LoadSceneMode.MakeScore)
|
||
|
{
|
||
|
EndBtn.SetActive(false);
|
||
|
//TheControl = false;
|
||
|
}
|
||
|
LoadManager.Instance.ExePlayBackOverEvent(LoadManager.Instance.IsMakeScore);
|
||
|
ExeSpeedChangeEvent(1);
|
||
|
}
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// 自定义速度改变事件参数类,以后想要添加参数方便
|
||
|
/// </summary>
|
||
|
public class SpeedChangeEventArgs : EventArgs
|
||
|
{
|
||
|
public int speed;
|
||
|
public SpeedChangeEventArgs(int speed)
|
||
|
{
|
||
|
this.speed = speed;
|
||
|
}
|
||
|
}
|