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.
429 lines
17 KiB
429 lines
17 KiB
|
|
using UnityEngine; |
|
using System.Collections; |
|
using AX.MessageSystem; |
|
using AX.TrackRecord; |
|
using UnityEngine.EventSystems; |
|
using System; |
|
public class LineamentEvent : MonoBehaviour |
|
{ |
|
private EditForceName edit; |
|
public static string ObjectName = ""; |
|
public static GameObject gameobj; |
|
public static bool IsDrawLine = false; |
|
[HideInInspector] |
|
public bool ControlJuBi = false; |
|
[HideInInspector] |
|
public string TeamName; |
|
private GameObject TheCarControl; |
|
private GameObject TaskWin; |
|
private GameObject TaskListWin; |
|
private DateTime t1, t2; |
|
private GameObject InsiderWin; |
|
private GameObject ChuLiWin; |
|
[HideInInspector] |
|
public bool ControlShuiPao = false; |
|
|
|
[HideInInspector] |
|
public bool isConnectCar = false;//是否连接消防车 |
|
|
|
void Start() |
|
{ |
|
edit = GameObject.Find("Canvas").gameObject.transform.Find("TeamNameWin").GetComponent<EditForceName>(); |
|
TheCarControl = GameObject.Find("Canvas").transform.Find("控制举臂").gameObject; |
|
InsiderWin = GameObject.Find("Canvas").transform.Find("InsiderWind").gameObject; |
|
ChuLiWin = GameObject.Find("Canvas").transform.Find("杂物清理界面").gameObject; |
|
TaskWin = GameObject.Find("Canvas").transform.Find("TaskWind").gameObject; |
|
TaskListWin = GameObject.Find("Canvas").transform.Find("TaskList").gameObject; |
|
MessageDispatcher.AddListener("TeamSelect", LineamentControl); |
|
MessageDispatcher.AddListener("SelectControl", SelectControl); |
|
MessageDispatcher.AddListener("SelectCharactersControl", SelectCharacters); |
|
MessageDispatcher.AddListener("RemoveCharactersControl", RemoveCharacters); |
|
} |
|
//void OnEnable() |
|
//{ |
|
// MessageDispatcher.AddListener("TeamSelect", LineamentControl); |
|
// MessageDispatcher.AddListener("SelectControl", SelectControl); |
|
// MessageDispatcher.AddListener("SelectCharactersControl", SelectCharacters); |
|
//} |
|
private void SelectCharacters(IMessage message) |
|
{ |
|
if (gameObject == null) |
|
return; |
|
if ((string)message.Data == gameObject.name) |
|
{ |
|
ShowLineament(8); |
|
} |
|
} |
|
private void RemoveCharacters(IMessage message) |
|
{ |
|
if (gameObject == null) |
|
return; |
|
if ((string)message.Data == gameObject.name) |
|
{ |
|
ShowLineament(0); |
|
} |
|
} |
|
|
|
private void SelectControl(IMessage message) |
|
{ |
|
if ((string)message.Data == gameObject.name) |
|
{ |
|
ShowLineament(8); |
|
} |
|
else |
|
{ |
|
ShowLineament(0); |
|
} |
|
var name = (string)message.Data; |
|
if (!name.Contains("rguanxian")) |
|
{ |
|
MessageDispatcher.SendMessage("CLOSE_LINELENGTH"); |
|
} |
|
} |
|
//public void RecordTaskChange() |
|
//{ |
|
// StartCoroutine(Countine()); |
|
//} |
|
//IEnumerator Countine() |
|
//{ |
|
// yield return new WaitForSeconds(0.1f); |
|
// MessageDispatcher.SendMessage("RecordTaskChangeEvent", (object)LineamentEvent.gameobj.name); |
|
//} |
|
void LineamentControl(IMessage message) |
|
{ |
|
|
|
|
|
if (TeamName == "") |
|
return; |
|
TeamName = transform.Find("info/Name").GetComponent<TextMesh>().text; |
|
string[] topName= TeamName.Split('-'); |
|
if (topName[0].Equals((string)message.Data)) |
|
{ |
|
ShowLineament(8); |
|
StartCoroutine(xietong()); |
|
} |
|
} |
|
IEnumerator xietong() |
|
{ |
|
|
|
yield return new WaitForSeconds(5f); |
|
ShowLineament(0); |
|
|
|
} |
|
public void ShowLineament(int layerid) |
|
{ |
|
if (this.transform.Find("info/Name") && layerid == 8) |
|
{ |
|
if (this.gameObject.name.Contains("anquanshao")) |
|
{ |
|
this.transform.Find("info/Name").GetComponent<TextMesh>().color = Color.red; |
|
} |
|
else |
|
{ |
|
this.transform.Find("info/Name").GetComponent<TextMesh>().color = Color.green; |
|
} |
|
} |
|
else |
|
{ |
|
if (this.transform.Find("info/Name")) |
|
{ |
|
this.transform.Find("info/Name").GetComponent<TextMesh>().color = Color.white; |
|
} |
|
} |
|
if ((this.gameObject.name.Contains("xiaofangche") || this.gameObject.name.Contains("mb")) && this.transform.Find("info/Name")) |
|
{ |
|
if (this.gameObject.transform.Find("polySurface3148")) |
|
{ |
|
this.gameObject.transform.Find("polySurface3148").gameObject.layer = layerid; |
|
} |
|
if (this.gameObject.transform.Find("cheshen")) |
|
{ |
|
this.gameObject.transform.Find("cheshen").gameObject.layer = layerid; |
|
} |
|
|
|
if (this.gameObject.transform.Find("CHeSHen")) |
|
{ |
|
this.gameObject.transform.Find("CHeSHen").gameObject.layer = layerid; |
|
} |
|
|
|
|
|
//else |
|
//{ |
|
// this.gameObject.transform.Find("polySurface3148").gameObject.layer = layerid; |
|
//} |
|
|
|
} |
|
else if (this.gameObject.name.Contains("xfy_path")) |
|
{ |
|
var bodylist = GetComponentsInChildren<SkinnedMeshRenderer>(); |
|
foreach (var body in bodylist) |
|
{ |
|
if (body.gameObject.activeInHierarchy) |
|
{ |
|
if (layerid > 0) |
|
{ |
|
body.gameObject.layer = layerid; |
|
} |
|
else |
|
{ |
|
body.gameObject.layer = gameObject.layer; |
|
} |
|
break; |
|
} |
|
} |
|
} |
|
else if (this.gameObject.name.Contains("bhf") && this.transform.Find("info/Name")) |
|
{ |
|
|
|
this.gameObject.transform.Find("BHF_Body").gameObject.layer = layerid; |
|
} |
|
else if (this.gameObject.name.Contains("fhf") && this.transform.Find("info/Name")) |
|
{ |
|
|
|
this.gameObject.transform.Find("FHF_Body").gameObject.layer = layerid; |
|
} |
|
else if (this.gameObject.name.Contains("grf") && this.transform.Find("info/Name")) |
|
{ |
|
|
|
this.gameObject.transform.Find("GHF_Body").gameObject.layer = layerid; |
|
} |
|
else if ((this.gameObject.name.Contains("zdf")|| this.gameObject.name.Contains("xfy_path")) |
|
&& this.transform.Find("info/Name")) |
|
{ |
|
|
|
this.gameObject.transform.Find("XiaoFangYuan_Body").gameObject.layer = layerid; |
|
} |
|
else if (this.gameObject.name.Contains("jyf") && this.transform.Find("info/Name")) |
|
{ |
|
|
|
this.gameObject.transform.Find("XiaoFangYuan_Body").gameObject.layer = layerid; |
|
} |
|
else if (this.gameObject.name.Contains("XF_SP")) |
|
{ |
|
if (transform.Find("ShuiPao09")) |
|
{ |
|
transform.Find("ShuiPao09").gameObject.layer = layerid; |
|
} |
|
this.gameObject.transform.Find("XF_SP_").gameObject.layer = layerid; |
|
this.gameObject.transform.Find("XF_SP_/XF_SP").gameObject.layer = layerid; |
|
} |
|
else if(this.gameObject.name.Contains("fire")) |
|
{ |
|
//火不处理 |
|
//if (layerid > 0) |
|
//{ |
|
// gameObject.layer = layerid; |
|
//} |
|
//else |
|
//{ |
|
// gameObject.layer = 30; |
|
//} |
|
} |
|
else |
|
{ |
|
this.gameObject.layer = layerid; |
|
} |
|
if (this.gameObject.name.Contains("jijiequ")) |
|
{ |
|
gameObject.layer = 25; |
|
} |
|
if (this.gameObject.name.Contains("XHSScene")) |
|
{ |
|
gameObject.layer = 27; |
|
} |
|
|
|
} |
|
void OnDestroy() |
|
{ |
|
MessageDispatcher.RemoveListener("TeamSelect", LineamentControl); |
|
MessageDispatcher.RemoveListener("SelectControl", SelectControl); |
|
MessageDispatcher.RemoveListener("SelectCharactersControl", SelectCharacters); |
|
MessageDispatcher.RemoveListener("RemoveCharactersControl", RemoveCharacters); |
|
} |
|
public static GameObject LastObj; |
|
void OnMouseDown() |
|
{ |
|
if (!EventSystem.current.IsPointerOverGameObject()) |
|
{ |
|
|
|
if (TrackRecordHelpClass.CheckIfCanControl()) |
|
{ |
|
//点击物体的显示功能 |
|
//if (this.gameObject.name.Contains("jijiequ") && InstantiationCar.Instance.CarName != "") |
|
//{ |
|
// return; |
|
//} |
|
if (gameObject.name.Contains("rguanxian")) |
|
{ |
|
MessageDispatcher.SendMessage("SHOW_LINELENGTH", gameObject); |
|
} |
|
if (gameObject.name.Contains("jingong")|| gameObject.name.Contains("chetui")|| gameObject.name.Contains("fengexian")|| gameObject.name.Contains("dujiexian")) |
|
{ |
|
MessageDispatcher.SendMessage("SHOW_JIANTOUEDITOR", gameObject); |
|
} |
|
if (gameObject.name.Contains("Polygon")) |
|
{ |
|
MessageDispatcher.SendMessage("ControlPolygonTrue", (object)gameObject.name); |
|
} |
|
|
|
gameobj = gameObject; |
|
|
|
if ((gameObject.name.Contains("xiaofangche-pchcdgc") || gameObject.name.Contains("xiaofangche-dgc") || gameObject.name.Contains("xiaofangche-gpc") || gameObject.name.Contains("xiaofangche-ytc")) && ControlJuBi) |
|
{ |
|
TheCarControl.SetActive(true); |
|
} |
|
if (gameObject.name != ObjectName) |
|
{ |
|
MessageDispatcher.SendMessage("CLOSE", (object)"PromptWindow", "CUBE"); |
|
TheCarControl.SetActive(false); |
|
if (gameObject.name.Contains("sy")) |
|
{ |
|
gameObject.GetComponent<WoundedControl>().isfage = false; |
|
} |
|
if (GameObject.Find("TheTipWindow"))//防止营救页面点击别的物体出现营救面板 |
|
{ |
|
Destroy(GameObject.Find("TheTipWindow").gameObject); |
|
} |
|
} |
|
//三种举高车显示控制举臂的页面 |
|
if (TheCarControl.activeInHierarchy && RecordManager.Instance.IsRecording) |
|
{ |
|
if (gameObject.name.Contains("dgc") || gameObject.name.Contains("gpc") || gameObject.name.Contains("ytc")) |
|
{ |
|
if (gameObject.name != ObjectName) |
|
{ |
|
|
|
TheCarControl.GetComponent<ControlRiseCar>().ToggleChange(false); |
|
TheCarControl.SetActive(false); |
|
} |
|
} |
|
else |
|
{ |
|
TheCarControl.SetActive(false); |
|
TheCarControl.GetComponent<ControlRiseCar>().ToggleChange(false); |
|
} |
|
|
|
} |
|
if (gameObject.name != ObjectName) |
|
{ |
|
MessageDispatcher.SendMessage("CLOSE", (object)TaskWin.name, "CUBE"); |
|
MessageDispatcher.SendMessage("CLOSE", (object)TaskListWin.name, "CUBE"); |
|
} |
|
ObjectName = gameObject.name; |
|
|
|
if (ObjectName.Contains("xiaofang")) |
|
{ |
|
LastObj = gameObject; |
|
InputManager.Instance_.SetChoseObj(gameObject);//单选时将物体加到选中数组中 |
|
} |
|
else |
|
{ |
|
if (!gameObject.name.Contains("pcd")) |
|
{ |
|
LastObj = null; |
|
} |
|
InputManager.Instance_.ClearSelectedCharacters(); |
|
} |
|
|
|
|
|
InstantiationCar.Instance.isCarSelect = true; |
|
|
|
MessageDispatcher.SendMessage("SelectControl", (object)gameobj.name); |
|
//限制连接管线的种类 |
|
if (gameObject.name.Contains("sgc") || gameObject.name.Contains("pmc") || gameObject.name.Contains("dgc") || gameObject.name.Contains("gpc") || gameObject.name.Contains("ytc") |
|
|| gameObject.name.Contains("xiaofangyuan") || gameObject.name.Contains("mb")|| gameObject.name.Contains("XHS")) |
|
{ |
|
InstantiationTool.Instance.isRLineSelect = false; |
|
} |
|
else |
|
{ |
|
InstantiationTool.Instance.isRLineSelect = true; |
|
} |
|
if (gameObject.name.Contains("jijiequ")) |
|
{ |
|
InstantiationTool.Instance.isRLineSelect = false; |
|
InstantiationCar.Instance.isCarSelect = false; |
|
} |
|
} |
|
t2 = DateTime.Now; |
|
|
|
if (t2 - t1 < new TimeSpan(0, 0, 0, 0, 400) && !EventSystem.current.IsPointerOverGameObject() && !LoadManager.Instance.IsPlayBacking && !UITaskWin.Instance.shield) |
|
{ |
|
if (gameObject.name.Contains("zqr")) //知情人UI显示 |
|
{ |
|
if (ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.CreatQuestion |
|
&& ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.EditQuestion |
|
&& ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.CopyQuestion) |
|
{ |
|
MessageDispatcher.SendMessage("OPEN", (object)InsiderWin.name, "CUBE"); |
|
InsiderControl.Instance.StarterWin(); |
|
} |
|
} |
|
if (gameObject.name.Contains("jijiequ")) |
|
{ |
|
MessageDispatcher.SendMessage("OPEN", (object)"JiJieQuUI", "CUBE"); |
|
SetJiJieQu.instance.GetGame(gameObject); |
|
} |
|
|
|
if (ExamInfoHelpClass.applicationMode == ExamInfoHelpClass.ApplicationMode.PATHFINDING && |
|
(gameObject.name.Contains("zwd") || gameObject.name.Contains("wxp"))) //显示杂物清理方式UI |
|
{ |
|
if (ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.CreatQuestion |
|
&& ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.EditQuestion |
|
&& ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.CopyQuestion) |
|
{ |
|
bool Has = false; |
|
foreach (Transform child in GameObject.Find("pxiaofangyuan").transform) |
|
{ |
|
float distance = Vector3.Distance(child.transform.position, |
|
this.gameObject.transform.position); |
|
if (distance < 4f) |
|
{ |
|
Has = true; |
|
MessageDispatcher.SendMessage("OPEN", (object)ChuLiWin.name, "CUBE"); |
|
ZaWuQingLiUI.instance.GetMessage(this.gameObject); |
|
break; |
|
} |
|
} |
|
if (!Has) |
|
{ |
|
MessageDispatcher.SendMessage("Operatinghints", (object)"请消防员靠近清除"); |
|
} |
|
} |
|
} |
|
if (ExamInfoHelpClass.applicationMode == ExamInfoHelpClass.ApplicationMode.SANDTABLE && |
|
(gameObject.name.Contains("zwd") || gameObject.name.Contains("wxp"))) |
|
{ |
|
if (ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.CreatQuestion |
|
&& ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.EditQuestion |
|
&& ExamInfoHelpClass.loadSceneMode != ExamInfoHelpClass.LoadSceneMode.CopyQuestion) |
|
{ |
|
MessageDispatcher.SendMessage("OPEN", (object)ChuLiWin.name, "CUBE"); |
|
ZaWuQingLiUI.instance.GetMessage(this.gameObject); |
|
} |
|
|
|
} |
|
if (ExamInfoHelpClass.applicationMode == ExamInfoHelpClass.ApplicationMode.PATHFINDING && |
|
(gameObject.name.Contains("Polygon"))) |
|
{ |
|
MessageDispatcher.SendMessage("OPEN", (object)"AreaAttributeSetting", "CUBE"); |
|
SetAreaAttribute.Instance.SetObjArea(gameObject); |
|
gameObject.GetComponent<PolygonController>().Editable = false; |
|
} |
|
if (ExamInfoHelpClass.applicationMode == ExamInfoHelpClass.ApplicationMode.PATHFINDING && |
|
(gameObject.name.Contains("nametext"))) |
|
{ |
|
|
|
MessageDispatcher.SendMessage("OPEN", (object)"NameTextSetting", "CUBE"); |
|
SetNameTextUI.instance.SetNameArea(gameObject); |
|
} |
|
|
|
|
|
} |
|
|
|
|
|
t1 = t2; |
|
} |
|
} |
|
}
|
|
|