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.
281 lines
8.6 KiB
281 lines
8.6 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class MenuWnd : MonoBehaviour
|
|
{
|
|
[Header("Btn")]
|
|
public Button accidentBtn;
|
|
public Button returnBtn;
|
|
public Button checkBtn;
|
|
public Button analyseBtn;
|
|
public Button analyseSuiDaoBtn;
|
|
[Header("其他控件")]
|
|
public GameObject peopleCheckWnd;
|
|
public GameObject analyseWnd;
|
|
public GameObject checkWorkerPanle;
|
|
public Transform peopleCheckGroup;
|
|
public Transform suidaoCheckGroup;
|
|
public GameObject suidaoAnalyseWnd;
|
|
public GameObject suidaoCheckWnd;
|
|
public GameObject suidaoResultWnd;
|
|
public GameObject suidaoEndWnd;
|
|
|
|
public Text checkResultTxt;
|
|
public Text AccidentTip;
|
|
public Text suidaoCheckTip;
|
|
public Text errorTip;
|
|
|
|
public Animator blackAni;
|
|
public Transform accidentCamere;
|
|
|
|
|
|
public GameObject car;
|
|
[Header("可拖动图片相关")]
|
|
public Transform DargImgParent;
|
|
public Transform DargCheckParent;
|
|
private DargCheck[] _dargChecks;
|
|
private UiListenter[] _uiListenters;
|
|
[HideInInspector]
|
|
public RectTransform currentDarg = null;
|
|
[Header("场景物件")]
|
|
public GameObject tanTaObj;
|
|
|
|
//事故发生的员工记录
|
|
private int accidentWorkerId = -1;
|
|
|
|
public void Init()
|
|
{
|
|
|
|
// accidentBtn.onClick.AddListener(() => { AISys.Instance.Accident(GameRoot.Instance._passIndex);});
|
|
RigisterListenter();
|
|
RigisterDargChecker();
|
|
checkBtn.onClick.AddListener(CheckAnswer);
|
|
analyseBtn.onClick.AddListener(() => { analyseWnd.SetActive(true);
|
|
StartCoroutine(Const.TimedTask(6,()=> {
|
|
analyseWnd.SetActive(false);
|
|
checkWorkerPanle.SetActive(true);
|
|
AISys.Instance.ShowFangKuang(accidentWorkerId, false);
|
|
}));
|
|
});
|
|
}
|
|
|
|
|
|
public void CheckPeople(int index)
|
|
{
|
|
|
|
peopleCheckWnd.SetActive(true);
|
|
StartCoroutine(IE_CheckPeople(index));
|
|
|
|
}
|
|
public void CheckSuiDao(int index)
|
|
{
|
|
//隧道窗口开启
|
|
suidaoCheckWnd.SetActive(true);
|
|
//隧道监测开启
|
|
StartCoroutine(IE_CheckSuidao(index));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 关卡1监测人员
|
|
/// </summary>
|
|
/// <param name="index">出事故的人员索引</param>
|
|
/// <returns></returns>
|
|
IEnumerator IE_CheckPeople(int index)
|
|
{
|
|
for (int i = 0; i < peopleCheckGroup.childCount; i++)
|
|
{
|
|
yield return new WaitForSeconds(Random.Range(2, 4));
|
|
if (i == index)
|
|
{
|
|
yield return new WaitForSeconds(6f);
|
|
peopleCheckGroup.GetChild(i).GetComponent<Image>().color = Color.red;
|
|
accidentWorkerId = i;
|
|
// AISys.Instance.ShowFangKuang(i,false);
|
|
continue;
|
|
}
|
|
|
|
peopleCheckGroup.GetChild(i).GetComponent<Image>().color = Color.green;
|
|
AISys.Instance.ShowFangKuang(i,true);
|
|
}
|
|
|
|
checkResultTxt.text = (index + 1) + "号员工长时间未响应是否调取相应监控并智能分析结果?";
|
|
checkResultTxt.gameObject.SetActive(true);
|
|
|
|
}
|
|
/// <summary>
|
|
/// 事故1处理
|
|
/// </summary>
|
|
public void Accident1Progss()
|
|
{
|
|
blackAni.CrossFade("Black", 0f);
|
|
accidentCamere.localPosition = new Vector3(-7.43f, 12.3f, 18.6f);
|
|
accidentCamere.localEulerAngles = new Vector3(40f, -6f, 0f);
|
|
StartCoroutine( Const.TimedTask(1.5f, () => {
|
|
AccidentTip.gameObject.SetActive(true);
|
|
returnBtn.gameObject.SetActive(true);
|
|
car.SetActive(true);
|
|
EduCoderTool.WebConnecter.Singleton.SendResultToWeb(true);
|
|
// car.GetComponent<Animator>().CrossFade("Go", 0);
|
|
}));
|
|
|
|
}
|
|
/// <summary>
|
|
/// pass2检查隧道压力
|
|
/// </summary>
|
|
/// <param name="index">异常隧道索引</param>
|
|
/// <returns></returns>
|
|
IEnumerator IE_CheckSuidao(int index)
|
|
{
|
|
for (int i = 0; i < suidaoCheckGroup.childCount; i++)
|
|
{
|
|
float value = Random.Range(0.5f, 1);
|
|
yield return new WaitForSeconds(Random.Range(2, 4));
|
|
if (i == index)
|
|
{
|
|
suidaoCheckGroup.GetChild(i).GetComponent<Text>().color = Color.red;
|
|
suidaoCheckGroup.GetChild(i).GetComponent<Text>().text = "2.5Mpa";
|
|
continue;
|
|
}
|
|
|
|
suidaoCheckGroup.GetChild(i).GetComponent<Text>().color = Color.green;
|
|
suidaoCheckGroup.GetChild(i).GetComponent<Text>().text = value.ToString("0.0")+"Mpa";
|
|
|
|
}
|
|
|
|
suidaoCheckTip.text = "A-" + (index+1) + "段隧道监测到数据异常是否察看分析结果?";
|
|
analyseSuiDaoBtn.gameObject.SetActive(true);
|
|
analyseSuiDaoBtn.onClick.AddListener(() => { StartCoroutine(Const.TimedTask(5f, () => {
|
|
suidaoResultWnd.SetActive(true);
|
|
//suidaoCheckWnd.SetActive(false);
|
|
suidaoAnalyseWnd.SetActive(false);
|
|
})); });
|
|
}
|
|
|
|
private void RigisterListenter()
|
|
{
|
|
if (DargImgParent == null) return;
|
|
|
|
_uiListenters = new UiListenter[DargImgParent.childCount];
|
|
for (int i = 0; i < DargImgParent.childCount; i++)
|
|
{
|
|
UiListenter listenter;
|
|
listenter = DargImgParent.GetChild(i).GetComponent<UiListenter>();
|
|
listenter._onClickDown = (p) => { AccidentClickAction(listenter); };
|
|
listenter._onClickUp = (p) => { AccidentClickUpAction(); };
|
|
listenter._onDarg = (p) => { AccidentDargAction(); };
|
|
_uiListenters[i] = listenter;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
private void RigisterDargChecker()
|
|
{
|
|
if (DargCheckParent == null) return;
|
|
_dargChecks = new DargCheck[DargCheckParent.childCount];
|
|
for (int i = 0; i < DargCheckParent.childCount; i++)
|
|
{
|
|
DargCheckParent.GetChild(i).GetComponent<DargCheck>().uiListenters = _uiListenters;
|
|
_dargChecks[i] = DargCheckParent.GetChild(i).GetComponent<DargCheck>();
|
|
}
|
|
}
|
|
|
|
private void AccidentDargAction()
|
|
{
|
|
//currentDarg.position = Input.mousePosition;
|
|
|
|
float x = Input.mousePosition.x;
|
|
float y = Input.mousePosition.y;
|
|
//x = Mathf.Clamp(x, 525, 1385);
|
|
//y = Mathf.Clamp(y, 147, 362);
|
|
currentDarg.position = new Vector3(x, y, 0);
|
|
Debug.Log(x+"-"+y);
|
|
Debug.Log(currentDarg.position);
|
|
}
|
|
|
|
private void AccidentClickAction(UiListenter listenter)
|
|
{
|
|
Debug.Log("点击" + listenter.ID);
|
|
currentDarg = listenter.GetComponent<RectTransform>();
|
|
}
|
|
|
|
private void AccidentClickUpAction()
|
|
{
|
|
currentDarg = null;
|
|
|
|
for (int i = 0; i < DargCheckParent.childCount; i++)
|
|
{
|
|
DargCheckParent.GetChild(i).GetComponent<DargCheck>().openCheck = true;
|
|
}
|
|
}
|
|
|
|
public void CheckAnswer()
|
|
{
|
|
int index = 0;
|
|
for (int i = 0; i < _dargChecks.Length; i++)
|
|
{
|
|
if (_dargChecks[i].CheckAnswer())
|
|
{
|
|
index++;
|
|
}
|
|
|
|
}
|
|
Debug.Log(index+"-"+ (_dargChecks.Length ));
|
|
if (index != _dargChecks.Length)
|
|
{
|
|
errorTip.gameObject.SetActive(true);
|
|
return;
|
|
}
|
|
|
|
//事故成功后处理事件
|
|
errorTip.gameObject.SetActive(false);
|
|
checkBtn.gameObject.SetActive(false);
|
|
returnBtn.gameObject.SetActive(true);
|
|
AccidentTip.text = "成功救护,已将昏迷人员护安全送至救护中心";
|
|
AccidentTip.gameObject.SetActive(false);
|
|
Accident1Progss();
|
|
|
|
|
|
}
|
|
/// <summary>
|
|
/// pass2 答案检查
|
|
/// </summary>
|
|
public void Pass2CheckAnswer()
|
|
{
|
|
int index = 0;
|
|
for (int i = 0; i < _dargChecks.Length; i++)
|
|
{
|
|
if (_dargChecks[i].CheckAnswer())
|
|
{
|
|
index++;
|
|
}
|
|
|
|
}
|
|
Debug.Log(index + "-" + (_dargChecks.Length));
|
|
if (index != _dargChecks.Length)
|
|
{
|
|
errorTip.gameObject.SetActive(true);
|
|
return;
|
|
}
|
|
|
|
//事故成功后处理事件
|
|
errorTip.gameObject.SetActive(false);
|
|
checkBtn.gameObject.SetActive(false);
|
|
returnBtn.gameObject.SetActive(true);
|
|
//AccidentTip.text = "成功救护,已将昏迷人员护安全送至救护中心";
|
|
//AccidentTip.gameObject.SetActive(false);
|
|
//Accident1Progss();
|
|
suidaoResultWnd.SetActive(false);
|
|
suidaoEndWnd.SetActive(true);
|
|
tanTaObj.SetActive(false);
|
|
AISys.Instance.ResetWorker();
|
|
EduCoderTool.WebConnecter.Singleton.SendResultToWeb(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|