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.
244 lines
6.1 KiB
244 lines
6.1 KiB
using DG.Tweening;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class ZhuanWanData : MonoBehaviour
|
|
{
|
|
|
|
public Transform ImgCamera, MainCamera, CutCamera;
|
|
public Transform cameraPos1;
|
|
public Transform cameraPos2;
|
|
|
|
public Button ChangePosBtn;
|
|
private int currentPos = 1;
|
|
|
|
|
|
public Text speedText,banjing,liuliang,wendu;
|
|
public Toggle toggle1, toggle2, toggle3;
|
|
|
|
public NewBehaviourScript DrawTool;
|
|
|
|
private int liulangValue = 0;
|
|
|
|
public bool isStartRecord = false;
|
|
public Button StartRecordBtn;
|
|
public Text RecordText;
|
|
public GetImage CutManager;
|
|
public GameObject AnalyWnd;
|
|
|
|
public GameObject checker1, checker2;
|
|
public Text nameTxt;
|
|
|
|
[Header("超速阈值设置相关")]
|
|
public Slider overSpeedSlider;
|
|
public Text overSpeedSetTxt;
|
|
|
|
|
|
public bool isCanRerocd = false;
|
|
|
|
private Dictionary<string, GameObject> checkerDict = new Dictionary<string, GameObject>();
|
|
private bool isOpenLiuLiangCheck;
|
|
private bool isOpenWenduCheck;
|
|
private bool isOpenBanJingCheck;
|
|
|
|
public void Init()
|
|
{
|
|
|
|
ChangePosBtn.onClick.AddListener(ChangeCameraPos);
|
|
StartRecordBtn.onClick.AddListener(Record);
|
|
|
|
|
|
toggle1.onValueChanged.AddListener((b1) => {
|
|
if (toggle1.isOn)
|
|
{
|
|
SetTimeScale(1);
|
|
}
|
|
});
|
|
toggle2.onValueChanged.AddListener((b2) => {
|
|
if (toggle2.isOn)
|
|
{
|
|
SetTimeScale(2);
|
|
}
|
|
});
|
|
toggle3.onValueChanged.AddListener((b3) => {
|
|
if (toggle3.isOn)
|
|
{
|
|
SetTimeScale(3);
|
|
}
|
|
});
|
|
|
|
overSpeedSlider.onValueChanged.AddListener((overSpeed) => {
|
|
overSpeedSetTxt.text = overSpeedSlider.value.ToString();
|
|
DriveManager.Instance.OverSpeedMaxValue = overSpeedSlider.value;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
public void RigsterChecker(string name,GameObject checker)
|
|
{
|
|
if (!checkerDict.ContainsKey(name))
|
|
{
|
|
checkerDict.Add(name, checker);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public void OpenChecker(string name)
|
|
{
|
|
foreach (var item in checkerDict)
|
|
{
|
|
item.Value.SetActive(false);
|
|
}
|
|
if (checkerDict.ContainsKey(name))
|
|
{
|
|
checkerDict[name].SetActive(true);
|
|
}
|
|
}
|
|
|
|
public void ResetChecker()
|
|
{
|
|
foreach (var item in checkerDict)
|
|
{
|
|
item.Value.SetActive(true);
|
|
}
|
|
}
|
|
|
|
public void SetCanRerocd(bool b)
|
|
{
|
|
isCanRerocd = b;
|
|
}
|
|
|
|
public void Record()
|
|
{
|
|
|
|
if (!isCanRerocd)
|
|
{
|
|
//提示还不能开始录制
|
|
GameManagerForZhuanWan.Instance.ShowTip("请先完成事故事故干预和标识训练,再进行视频监控录制!");
|
|
return;
|
|
}
|
|
|
|
isStartRecord = !isStartRecord;
|
|
if (isStartRecord)
|
|
{
|
|
RecordText.text = "点击中止录制";
|
|
CutCamera.gameObject.SetActive(true);
|
|
CutManager.isStartRecord = true;
|
|
}
|
|
else
|
|
{
|
|
CutManager.isStartRecord = false;
|
|
RecordText.text = "分析";
|
|
//添加打开分析窗口功能
|
|
StartRecordBtn.onClick.RemoveAllListeners();
|
|
StartRecordBtn.onClick.AddListener(() => {
|
|
CutCamera.gameObject.SetActive(false);
|
|
AnalyWnd.SetActive(true);
|
|
toggle1.isOn = true;
|
|
|
|
CutManager.PlayImgsAction();
|
|
|
|
});
|
|
|
|
}
|
|
}
|
|
|
|
public void SetSpeedTxt(float speed)
|
|
{
|
|
|
|
//float value = Random.Range(85, 130);
|
|
if (!GameManagerForZhuanWan.Instance.isNormalRoadState)
|
|
{
|
|
if (speed > DriveManager.Instance.OverSpeedMaxValue)
|
|
{
|
|
speedText.color = Color.red;
|
|
}
|
|
else
|
|
{
|
|
speedText.color = Color.green;
|
|
}
|
|
}
|
|
|
|
speedText.text = speed.ToString("0.0")+"km/h";
|
|
|
|
|
|
}
|
|
|
|
public void SetBanJingTxt()
|
|
{
|
|
if (!isOpenBanJingCheck) return;
|
|
float value = Random.Range(30, 45);
|
|
banjing.text = value.ToString() ;
|
|
}
|
|
public void OpenBanJingCheck()
|
|
{
|
|
isOpenBanJingCheck = true;
|
|
}
|
|
|
|
public void SetLiuLiang()
|
|
{
|
|
if (!isOpenLiuLiangCheck) return;
|
|
liulangValue++;
|
|
liuliang.text = liulangValue.ToString();
|
|
}
|
|
public void OpenLiuLiangCheck()
|
|
{
|
|
isOpenLiuLiangCheck = true;
|
|
}
|
|
public void SetWendu()
|
|
{
|
|
if (!isOpenWenduCheck) return;
|
|
float value = Random.Range(40, 60);
|
|
wendu.text = value.ToString() + "℃";
|
|
}
|
|
public void OpenWebduCheck()
|
|
{
|
|
isOpenWenduCheck = true;
|
|
}
|
|
public void SetTimeScale(float value)
|
|
{
|
|
Time.timeScale = value;
|
|
}
|
|
|
|
public void ChangeCameraPos()
|
|
{
|
|
switch (currentPos)
|
|
{
|
|
case 1:
|
|
nameTxt.text = "转弯处2号检测点";
|
|
checker1.SetActive(false);
|
|
checker2.SetActive(true);
|
|
|
|
CutCamera.DOMove(cameraPos2.position, 0.5f);
|
|
ImgCamera.DOMove(cameraPos2.position, 0.5f);
|
|
MainCamera.DOMove(cameraPos2.position, 0.5f);
|
|
|
|
CutCamera.DORotate(cameraPos2.eulerAngles, 0.5f);
|
|
ImgCamera.DORotate(cameraPos2.eulerAngles, 0.5f);
|
|
MainCamera.DORotate(cameraPos2.eulerAngles, 0.5f);
|
|
|
|
currentPos = 2;
|
|
break;
|
|
case 2:
|
|
nameTxt.text = "转弯处1号检测点";
|
|
checker2.SetActive(false);
|
|
checker1.SetActive(true);
|
|
|
|
CutCamera.DOMove(cameraPos1.position, 0.5f);
|
|
ImgCamera.DOMove(cameraPos1.position, 0.5f);
|
|
MainCamera.DOMove(cameraPos1.position, 0.5f);
|
|
|
|
CutCamera.DORotate(cameraPos1.eulerAngles, 0.5f);
|
|
ImgCamera.DORotate(cameraPos1.eulerAngles, 0.5f);
|
|
MainCamera.DORotate(cameraPos1.eulerAngles, 0.5f);
|
|
|
|
currentPos = 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|