| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103 | using Newtonsoft.Json.Linq;using Newtonsoft.Json;using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Networking;using UnityEngine.UI;using UnityEngine.UIElements;using Toggle = UnityEngine.UI.Toggle;using UnityAsync;using WaitUntil = UnityAsync.WaitUntil;using Unity.VisualScripting;using System.Threading.Tasks;using Button = UnityEngine.UI.Button;[System.Serializable]public class QXZData{    public int ADDVCD;    public float ALT;    public double LGTD;    public double LTTD;    public int ROWNUM_;    public string STCD;    public string STLC;    public string STNM;    public float dropSum6;}[System.Serializable]public class ServerObsDatas{    public class ServerObsData    {        public string channelId;        public string deviceId;        public string name;        public string ipAddress;        public string ptzTypeText;        public bool status;    }    public int total;    public List<ServerObsData> list;}[System.Serializable]public class SWZData{    // 行政区划代码    public string ADDVCD;    // 行政管理单位    public string ADMAUTH;    // 观测站所属单位    public string ATCUNIT;    // 建站年月    public string BGFRYM;    // 河流名称    public string BSNM;    // 备注    public string COMMENTS;    // 流域名称    public string DRNA;    // 河流流域代码    public string DSTRVM;    // 站点更名前站名    public string DTMEL;    // 站点更名前名称    public string DTMNM;    // 数据处理人    public string DTPR;    // 建成年月    public string ESSTYM;    // 站点等级    public string FRGRD;    // 水系名称    public string HNNM;    // 经度    public double LGTD;    // 地区    public string LOCALITY;    // 纬度    public double LTTD;    // 修改时间    public string MODITIME;    // 水文站代码    public string PHCD;    // 行号    public int ROWNUM_;    // 河道名称    public string RVNM;    // 站点状态    public string STAZT;    // 站点基础    public string STBK;    // 站点代码    public string STCD;    // 站点位置    public string STLC;    // 站点名称    public string STNM;    // 站点类型    public string STTP;    // 是否使用    public string USFL;    // 最近6小时降水量    public float dropSum6;    // 天气    public string wth;}public class GCJKLayer : YZTRootLayer{    public static GCJKLayer _Instance;    //泵站监控面板    private RectTransform _bengZhanJianKongPanel;    private RectTransform _bengZhanJianKongContent;    [Header("泵站监控数据预制体")] public GameObject BengZhanJianKongItemOri;    [Header("泵站监控数据")] public List<BengZhanJianKongData> BengZhanJianKongDatas;    private List<BengZhanJianKongItem> currentBengZhanJianKongItems;    //闸站监测    private RectTransform _zhaZhanJianKongPanel;    private RectTransform _zhaZhanJianKongContent;    [Header("闸站监测数据预制体")] public GameObject ZhaZhanJianKongItemOri;    private List<ZhaZhanJianKongItem> currentZhaZhanJianKongItems;    //水文监测    private RectTransform _shuiWenJianCePanel;    private Text _wenduText;    private Text _shiduText;    private Text _qiyaText;    private Text _fengXiangText;    private Text _fengLiText;    private Text _yuLiangText;    [Header("水文监测数据")] public ShuiWenJianCeData currentShuiWenJianCeData;    //工程安全检测    //检测数据    private Text _pingJunLiuLiangText;    private Text _zuiGaoShuiWeiText;    private Text _zuiDaLiuLiangText;    private Text _gongChengGaoJingText;    private Text _zhengChangYunXingText;    [Header("工程安全检测-检测数据")] public GongChengJianCeData currentGongChengJianCeData;    //工程列表    private RectTransform _gongChengLieBiaoContent;    public GameObject GongChengLieBiaoItemOri;    private List<GongChengLieBiaoItem> currentGongChengLieBiaoItems = new List<GongChengLieBiaoItem>();    private Button GClist_QuanBuButton;    private Button GClist_ShuiWeiButton;    private Button GClist_ShuiYaButton;    private Button GClist_WeiYiButton;    private Button GClist_ShiPinButton;    //视频监控    [Header("监控数据")] public ObsPlayerPanel obsPanel;    public GameObject obsItemPrefab;    private Transform obsItemContent;    private List<ObsItem> _obsItems;    public GameObject obsIconPrefab;    private Transform _obsIconContent;    private List<ObsIconCtrl> _obsIconCtrls;    private InputField _obsSearchInputField;    //水位图标    [Header("水位数据")] public GameObject shuiweiIconPrefab;    private List<ShuiWeiIconCtrl> _shuiWeiIconCtrls = new List<ShuiWeiIconCtrl>();    private Transform _shuiWeiIconContent;    private bool creatShuiWeiIcon = false;    //水压    public GameObject shuiYaIconPrefab;    private List<ShuiYaIconCtrl> _shuiYaIconCtrls = new List<ShuiYaIconCtrl>();    private Transform _shuiYaIconContent;    private bool creatShuiYaIcon = false;    //位移    public GameObject weiYiIconPrefab;    private List<WeiYiIconCtrl> _weiYiIconCtrls = new List<WeiYiIconCtrl>();    private Transform _weiYiIconContent;    private bool creatWeiYiIcon = false;    private Toggle obsToggle;    private Toggle shuiWeiToggle;    private Toggle shuiYaToggle;    private Toggle weiYiToggle;    public RectTransform main;    public RectTransform miniMap;    public UnityEngine.UI.Button globalWeatherBtn;    public UnityEngine.UI.Button exitGlobalWeatherBtn;    private ShuiWeiHistoryPanel _shuiWeiHistoryPanel;    public RectTransform miniMapQXContent;    public RectTransform miniMapSWContent;    public GameObject dropUnitPrefab;    public GameObject weatherUnitPrefab;    public UnityEngine.UI.Button qxDataBtn;    public UnityEngine.UI.Button swDataBtn;    public Sprite highLightBtn;    public Sprite normalBtn;    public Toggle dropToggle;    public Toggle weatherToggle;    List<DropUnit> dropUnits = new List<DropUnit>();    List<WeatherUnit> weatherUnits = new List<WeatherUnit>();    public GameObject runtimePointObj;    private void Awake()    {        _Instance = this;        Init();        _shuiWeiHistoryPanel = this.transform.Find("Main/ShuiWeiHistoryPanel").GetComponent<ShuiWeiHistoryPanel>();        _shuiWeiHistoryPanel.Init();        _shuiWeiHistoryPanel.gameObject.SetActive(false);    }    private async void OnEnable()    {        StaticLod.instance.OnFoucusStatic(0);        bool waitInitZhaZhanJianKongData = false;        if (GlobalData.buYuanSensorData != null)        {            if (GlobalData.buYuanSensorData.data.Count < 1)            {                await HttpHelper._Instance.SendBuYuan_GetSensorData();            }            if (GlobalData.buYuanSensorData.data.Count > 0)            {                waitInitZhaZhanJianKongData = true;            }        }        if (GlobalData.taoKouSensorData != null)        {            if (GlobalData.taoKouSensorData.data.Count < 1)            {                await HttpHelper._Instance.SendTaoKou_GetSensorData();            }            if (GlobalData.taoKouSensorData.data.Count > 0)            {                waitInitZhaZhanJianKongData = true;            }        }        if (waitInitZhaZhanJianKongData)        {            SetZhaZhanJianKongData();        }        if (GlobalData.BuYuanShuiWeiDataList.Count < 1)        {            await HttpHelper._Instance.InitSWYJData();        }        if (!creatShuiWeiIcon && GlobalData.BuYuanShuiWeiDataList.Count > 0)        {            CreatShuiWeiIcon();            FindShuiWeiTargetObje();        }        if (GlobalData.BuYuanShuiWeiDataList.Count < 1)        {            await HttpHelper._Instance.GetBuYuanDevicesGroupInfo();        }        if (!creatShuiYaIcon && GlobalData.BuYuanShuiWeiDataList.Count > 0)        {            CreatShuiYaIcon();            FindShuiYaTargetObje();        }        if (!creatWeiYiIcon && GlobalData.BuYuanWeiYiDataList.Count > 0)        {            CreatWeiYiIcon();            FindWeiYiTargetObje();        }        SetObsIconActive(obsToggle.isOn);        SetShuiWeiIconActive(shuiWeiToggle.isOn);        SetShuiYaIconActive(shuiYaToggle.isOn);        SetWeiYiIconActive(weiYiToggle.isOn);                SetGongChengLieBiaoData();    }    public void Init()    {        //泵站监控面板        _bengZhanJianKongPanel = this.transform.Find("BengZhanJianKong").GetComponent<RectTransform>();        _bengZhanJianKongContent =            _bengZhanJianKongPanel.Find("ScrollView/Viewport/Content").GetComponent<RectTransform>();        currentBengZhanJianKongItems = new List<BengZhanJianKongItem>();        if (BengZhanJianKongDatas != null && BengZhanJianKongDatas.Count > 0)        {            for (int i = 0; i < BengZhanJianKongDatas.Count; i++)            {                BengZhanJianKongItem tempItem = Instantiate(BengZhanJianKongItemOri, _bengZhanJianKongContent)                    .GetComponent<BengZhanJianKongItem>();                tempItem.Init();                tempItem.SetData(BengZhanJianKongDatas[i]);                currentBengZhanJianKongItems.Add(tempItem);            }        }        //闸站        _zhaZhanJianKongPanel = this.transform.Find("ZhaZhanJianKong").GetComponent<RectTransform>();        _zhaZhanJianKongContent =            _zhaZhanJianKongPanel.Find("ScrollView/Viewport/Content").GetComponent<RectTransform>();        currentZhaZhanJianKongItems = new List<ZhaZhanJianKongItem>();        //水文        _shuiWenJianCePanel = this.transform.Find("ShuiWenJianCe").GetComponent<RectTransform>();        _wenduText = _shuiWenJianCePanel.Find("WenDu/Text/numText").GetComponent<Text>();        _shiduText = _shuiWenJianCePanel.Find("ShiDu/Text/numText").GetComponent<Text>();        _qiyaText = _shuiWenJianCePanel.Find("QiYa/Text/numText").GetComponent<Text>();        _fengXiangText = _shuiWenJianCePanel.Find("FengXiang/Text/numText").GetComponent<Text>();        _fengLiText = _shuiWenJianCePanel.Find("FengLi/Text/numText").GetComponent<Text>();        _yuLiangText = _shuiWenJianCePanel.Find("YuLiang/Text/numText").GetComponent<Text>();        if (currentShuiWenJianCeData != null)        {            _wenduText.text = $"{currentShuiWenJianCeData.wendu}<size=12><color=#A5BBE2>\u2103</color></size>";            _shiduText.text = $"{currentShuiWenJianCeData.shidu} <size=12><color=#A5BBE2>%</color></size>";            _qiyaText.text = $"{currentShuiWenJianCeData.qiya} <size=12><color=#A5BBE2>kPa</color></size>";            _fengXiangText.text = $"{currentShuiWenJianCeData.fengxiang} <size=12><color=#A5BBE2>风</color></size>";            _fengLiText.text = $"{currentShuiWenJianCeData.fengli} <size=12><color=#A5BBE2>级</color></size>";            _yuLiangText.text = $"{currentShuiWenJianCeData.yuliang} <size=12><color=#A5BBE2>mm</color></size>";        }        //监测数据        _pingJunLiuLiangText = this.transform.Find("RightUp/ShuJuJianCe/PingJunLiuLiang/title/numText")            .GetComponent<Text>();        _zuiGaoShuiWeiText = this.transform.Find("RightUp/ShuJuJianCe/ZuiGaoShuiWei/title/numText")            .GetComponent<Text>();        _zuiDaLiuLiangText = this.transform.Find("RightUp/ShuJuJianCe/ZuiDaLiuLiang/title/numText")            .GetComponent<Text>();        _gongChengGaoJingText = this.transform.Find("RightUp/ShuJuJianCe/DangRiJingGao/title/numText")            .GetComponent<Text>();        _zhengChangYunXingText = this.transform.Find("RightUp/ShuJuJianCe/ZhengChangGongCheng/title/numText")            .GetComponent<Text>();        if (currentGongChengJianCeData != null)        {            _pingJunLiuLiangText.text = $"{currentGongChengJianCeData.pinJunLiuLiang}";            _zuiGaoShuiWeiText.text = $"{currentGongChengJianCeData.zuiGaoShuiWei}";            _zuiDaLiuLiangText.text = $"{currentGongChengJianCeData.zuiDaLiuLiang}";            _gongChengGaoJingText.text = $"{currentGongChengJianCeData.gongChengJingGao}";            _zhengChangYunXingText.text = $"{currentGongChengJianCeData.zhengChangYunXing}";        }        //工程列表        _gongChengLieBiaoContent = this.transform.Find("RightUp/GongChengLieBiao/ScrollView/Viewport/Content")            .GetComponent<RectTransform>();        GClist_QuanBuButton = this.transform.Find("RightUp/GongChengLieBiao/QuanBuButton").GetComponent<Button>();        GClist_QuanBuButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.all); });        GClist_ShuiWeiButton = this.transform.Find("RightUp/GongChengLieBiao/ShuiWeiButton").GetComponent<Button>();        GClist_ShuiWeiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.shuiWei); });        GClist_ShuiYaButton = this.transform.Find("RightUp/GongChengLieBiao/ShuiYaButton").GetComponent<Button>();        GClist_ShuiYaButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.shuiYa); });        GClist_WeiYiButton = this.transform.Find("RightUp/GongChengLieBiao/WeiYiButton").GetComponent<Button>();        GClist_WeiYiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.weiYi); });        GClist_ShiPinButton = this.transform.Find("RightUp/GongChengLieBiao/JianKongButton").GetComponent<Button>();        GClist_ShiPinButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.shiPin); });        //监控        obsPanel = this.transform.Find("Main/ObsPlayerPanel").GetComponent<ObsPlayerPanel>();        obsPanel.gameObject.SetActive(false);        obsItemContent = this.transform.Find("ShiPinJianKong/ScrollView/Viewport/Content").transform;        _obsIconContent = this.transform.Find("Main/ObsIconContent").transform;        _obsSearchInputField = this.transform.Find("ShiPinJianKong/InputField").GetComponent<InputField>();        _obsSearchInputField.onValueChanged.AddListener(SearchObsItem);        CreatObsItem();        //水位        _shuiWeiIconContent = this.transform.Find("Main/ShuiWeiIconContent").transform;        _shuiYaIconContent = this.transform.Find("Main/ShuiYaIconContent").transform;        _weiYiIconContent = this.transform.Find("Main/WeiYiIconContent").transform;        obsToggle = this.transform.Find("Main/ObsToggle").GetComponent<Toggle>();        shuiWeiToggle = this.transform.Find("Main/ShuiWeiToggle").GetComponent<Toggle>();        shuiYaToggle = this.transform.Find("Main/ShuiYaToggle").GetComponent<Toggle>();        weiYiToggle = this.transform.Find("Main/WeiYiToggle").GetComponent<Toggle>();        obsToggle.onValueChanged.AddListener(SetObsIconActive);        shuiWeiToggle.onValueChanged.AddListener(SetShuiWeiIconActive);        shuiYaToggle.onValueChanged.AddListener(SetShuiYaIconActive);        weiYiToggle.onValueChanged.AddListener(SetWeiYiIconActive);        globalWeatherBtn.onClick.AddListener(OnGlobalWeatherClick);        exitGlobalWeatherBtn.onClick.AddListener(() =>        {            CameraManager.SwitchCamera(0);            viewMode = ViewMode.normal;            miniMap.gameObject.SetActive(false);            main.gameObject.SetActive(true);        });        qxDataBtn.onClick.AddListener(() =>        {            miniMapQXContent.gameObject.SetActive(true);            miniMapSWContent.gameObject.SetActive(false);            qxDataBtn.GetComponent<UnityEngine.UI.Image>().sprite = highLightBtn;            swDataBtn.GetComponent<UnityEngine.UI.Image>().sprite = normalBtn;            weatherToggle.gameObject.SetActive(false);        });        swDataBtn.onClick.AddListener(() =>        {            miniMapQXContent.gameObject.SetActive(false);            miniMapSWContent.gameObject.SetActive(true);            swDataBtn.GetComponent<UnityEngine.UI.Image>().sprite = highLightBtn;            qxDataBtn.GetComponent<UnityEngine.UI.Image>().sprite = normalBtn;            weatherToggle.gameObject.SetActive(true);        });        dropToggle.onValueChanged.AddListener((active) =>        {            for (int i = 0; i < dropUnits.Count; i++)            {                dropUnits[i].gameObject.SetActive(active);            }        });        weatherToggle.onValueChanged.AddListener((active) =>        {            for (int i = 0; i < weatherUnits.Count; i++)            {                weatherUnits[i].gameObject.SetActive(active);            }        });    }    public async void OnGlobalWeatherClick()    {        if (GlobalData.qXZDatas.Count < 1 || GlobalData.sWZDatas.Count < 1)            await HttpHelper._Instance.InitGCJKData();        GameObject shaPan = GameObject.FindGameObjectWithTag("ShaPan");        CameraManager.SwitchCamera(1);        if (dropUnits.Count <= 0)        {            viewMode = ViewMode.miniMap;            dropUnits = new List<DropUnit>();            weatherUnits = new List<WeatherUnit>();            for (int i = 0; i < GlobalData.qXZDatas.Count; i++)            {                GameObject gameObject = Instantiate(dropUnitPrefab);                DropUnit dropUnit = gameObject.GetComponent<DropUnit>();                dropUnit.transform.SetParent(miniMapQXContent.transform);                dropUnit.Init(GlobalData.qXZDatas[i].LGTD, GlobalData.qXZDatas[i].LTTD, GlobalData.qXZDatas[i].STNM,                    GlobalData.qXZDatas[i].dropSum6.ToString());                dropUnits.Add(dropUnit);                dropUnit.bingObj = Instantiate(runtimePointObj).gameObject;                dropUnit.bingObj.transform.SetParent(shaPan.transform.GetChild(9));                dropUnit.bingObj.transform.localEulerAngles = Vector3.zero;                dropUnit.bingObj.transform.localScale = Vector3.one;                dropUnit.bingObj.transform.localPosition =                    CoordinateConverter.GeoToUGUISmall(GlobalData.qXZDatas[i].LGTD, GlobalData.qXZDatas[i].LTTD);                dropUnit.bingObj.name = GlobalData.qXZDatas[i].STNM;            }            for (int i = 0; i < GlobalData.sWZDatas.Count; i++)            {                GameObject gameObject = Instantiate(dropUnitPrefab);                DropUnit dropUnit = gameObject.GetComponent<DropUnit>();                dropUnit.transform.SetParent(miniMapSWContent.transform);                dropUnit.Init(GlobalData.sWZDatas[i].LGTD, GlobalData.sWZDatas[i].LTTD, GlobalData.sWZDatas[i].STNM,                    GlobalData.sWZDatas[i].dropSum6.ToString());                dropUnits.Add(dropUnit);                dropUnit.bingObj = Instantiate(runtimePointObj).gameObject;                dropUnit.bingObj.transform.SetParent(shaPan.transform.GetChild(10));                dropUnit.bingObj.transform.localEulerAngles = Vector3.zero;                dropUnit.bingObj.transform.localScale = Vector3.one;                dropUnit.bingObj.transform.localPosition =                    CoordinateConverter.GeoToUGUISmall(GlobalData.sWZDatas[i].LGTD, GlobalData.sWZDatas[i].LTTD);                dropUnit.bingObj.name = GlobalData.sWZDatas[i].STNM;            }        }        else        {            viewMode = ViewMode.miniMap;            int index = 0;            for (int i = 0; i < GlobalData.qXZDatas.Count; i++)            {                dropUnits[i].Init(GlobalData.qXZDatas[i].LGTD, GlobalData.qXZDatas[i].LTTD, GlobalData.qXZDatas[i].STNM,                    GlobalData.qXZDatas[i].dropSum6.ToString());                index++;            }            for (int i = 0; i < GlobalData.sWZDatas.Count; i++)            {                dropUnits[i + index].Init(GlobalData.sWZDatas[i].LGTD, GlobalData.sWZDatas[i].LTTD,                    GlobalData.sWZDatas[i].STNM, GlobalData.sWZDatas[i].dropSum6.ToString());            }        }        if (weatherUnits.Count <= 0)        {            for (int i = 0; i < GlobalData.sWZDatas.Count; i++)            {                GameObject gameObject = Instantiate(weatherUnitPrefab);                WeatherUnit weatherUnit = gameObject.GetComponent<WeatherUnit>();                weatherUnit.transform.SetParent(miniMapSWContent.transform);                weatherUnit.Init(GlobalData.sWZDatas[i].LGTD, GlobalData.sWZDatas[i].LTTD, GlobalData.sWZDatas[i].STNM,                    GlobalData.sWZDatas[i].wth);                weatherUnits.Add(weatherUnit);                weatherUnit.bingObj = Instantiate(runtimePointObj).gameObject;                weatherUnit.bingObj.transform.SetParent(shaPan.transform.GetChild(10));                weatherUnit.bingObj.transform.localEulerAngles = Vector3.zero;                weatherUnit.bingObj.transform.localScale = Vector3.one;                weatherUnit.bingObj.transform.localPosition =                    CoordinateConverter.GeoToUGUISmall(GlobalData.sWZDatas[i].LGTD, GlobalData.sWZDatas[i].LTTD);                weatherUnit.bingObj.name = GlobalData.sWZDatas[i].STNM;            }        }        else        {            for (int i = 0; i < GlobalData.sWZDatas.Count; i++)            {                weatherUnits[i].Init(GlobalData.sWZDatas[i].LGTD, GlobalData.sWZDatas[i].LTTD,                    GlobalData.sWZDatas[i].STNM, GlobalData.sWZDatas[i].wth);            }        }        miniMap.gameObject.SetActive(true);        main.gameObject.SetActive(false);    }    public void SetBengZhanJianKongData(BengZhanJianKongData[] datas)    {        for (int i = 0; i < currentBengZhanJianKongItems.Count; i++)        {            Destroy(currentBengZhanJianKongItems[i].gameObject);        }        BengZhanJianKongDatas = new List<BengZhanJianKongData>();        BengZhanJianKongDatas.AddRange(datas);        if (BengZhanJianKongDatas != null && BengZhanJianKongDatas.Count > 0)        {            for (int i = 0; i < BengZhanJianKongDatas.Count; i++)            {                BengZhanJianKongItem tempItem = Instantiate(BengZhanJianKongItemOri, _bengZhanJianKongContent)                    .GetComponent<BengZhanJianKongItem>();                tempItem.Init();                tempItem.SetData(BengZhanJianKongDatas[i]);                currentBengZhanJianKongItems.Add(tempItem);            }        }    }    public void SetZhaZhanJianKongData()    {        List<ZhaZhanJianKongData> datas = new List<ZhaZhanJianKongData>();        for (int i = 0; i < GlobalData.buYuanSensorData.data.Count; i++)        {            datas.Add(new ZhaZhanJianKongData()            {                name = "闸门_" + GlobalData.buYuanSensorData.data[i].sensor_id,                openValue = GlobalData.buYuanSensorData.data[i].opening_degree*0.01f,                state = GlobalData.buYuanSensorData.data[i].gate_open                    ? ZhaZhanState.open                    : ZhaZhanState.close,            });        }        for (int i = 0; i < GlobalData.taoKouSensorData.data.Count; i++)        {            datas.Add(new ZhaZhanJianKongData()            {                name = "闸门_" + GlobalData.taoKouSensorData.data[i].sensor_id,                openValue = GlobalData.taoKouSensorData.data[i].opening_degree*0.01f,                state = GlobalData.taoKouSensorData.data[i].gate_open                    ? ZhaZhanState.open                    : ZhaZhanState.close,            });        }        for (int i = 0; i < currentZhaZhanJianKongItems.Count; i++)        {            Destroy(currentZhaZhanJianKongItems[i].gameObject);        }        currentZhaZhanJianKongItems.Clear();        if (datas != null && datas.Count > 0)        {            for (int i = 0; i < datas.Count; i++)            {                ZhaZhanJianKongItem tempItem = Instantiate(ZhaZhanJianKongItemOri, _zhaZhanJianKongContent)                    .GetComponent<ZhaZhanJianKongItem>();                tempItem.Init();                tempItem.SetData(datas[i]);                currentZhaZhanJianKongItems.Add(tempItem);            }        }    }    public void SetShuiWenJianCeData(ShuiWenJianCeData data)    {        currentShuiWenJianCeData = data;        if (currentShuiWenJianCeData != null)        {            _wenduText.text = $"{currentShuiWenJianCeData.wendu}<size=12><color=#A5BBE2>\u2103</color></size>";            _shiduText.text = $"{currentShuiWenJianCeData.shidu} <size=12><color=#A5BBE2>%</color></size>";            _qiyaText.text = $"{currentShuiWenJianCeData.qiya} <size=12><color=#A5BBE2>kPa</color></size>";            _fengXiangText.text = $"{currentShuiWenJianCeData.fengxiang} <size=12><color=#A5BBE2>风</color></size>";            _fengLiText.text = $"{currentShuiWenJianCeData.fengli} <size=12><color=#A5BBE2>级</color></size>";            _yuLiangText.text = $"{currentShuiWenJianCeData.yuliang} <size=12><color=#A5BBE2>mm</color></size>";        }    }    public void SetGongChengJianCe(GongChengJianCeData data)    {        currentGongChengJianCeData = data;        if (currentGongChengJianCeData != null)        {            _pingJunLiuLiangText.text = $"{currentGongChengJianCeData.pinJunLiuLiang}";            _zuiGaoShuiWeiText.text = $"{currentGongChengJianCeData.zuiGaoShuiWei}";            _zuiDaLiuLiangText.text = $"{currentGongChengJianCeData.zuiDaLiuLiang}";            _gongChengGaoJingText.text = $"{currentGongChengJianCeData.gongChengJingGao}";            _zhengChangYunXingText.text = $"{currentGongChengJianCeData.zhengChangYunXing}";        }    }    public void SetGongChengLieBiaoData()    {        List<GongChengLieBiaoData> datas = new List<GongChengLieBiaoData>();        //水位        foreach (var tempData in GlobalData.BuYuanShuiWeiDataList)        {            GongChengLieBiaoData tempLieBiaoData = new GongChengLieBiaoData();            tempLieBiaoData.name = tempData.name;            tempLieBiaoData.type = GongChengType.shuiWei;            tempLieBiaoData.state = GongChengState.normal;            datas.Add(tempLieBiaoData);        }        //水压        foreach (var tempData in GlobalData.BuYuanShuiYaDataList)        {            GongChengLieBiaoData tempLieBiaoData = new GongChengLieBiaoData();            tempLieBiaoData.name = tempData.name;            tempLieBiaoData.type = GongChengType.shuiYa;            tempLieBiaoData.state = GongChengState.normal;            datas.Add(tempLieBiaoData);        }        //位移        foreach (var tempData in GlobalData.BuYuanWeiYiDataList)        {            GongChengLieBiaoData tempLieBiaoData = new GongChengLieBiaoData();            tempLieBiaoData.name = tempData.name;            tempLieBiaoData.type = GongChengType.weiYi;            tempLieBiaoData.state = GongChengState.normal;            datas.Add(tempLieBiaoData);        }        //监控        foreach (var tempData in GlobalData.obsDatas_by)        {            GongChengLieBiaoData tempLieBiaoData = new GongChengLieBiaoData();            tempLieBiaoData.name = tempData.name;            tempLieBiaoData.type = GongChengType.shiPin;            tempLieBiaoData.state = tempData.status ? GongChengState.normal : GongChengState.warning;            datas.Add(tempLieBiaoData);        }        foreach (var tempData in GlobalData.obsDatas_tk)        {            GongChengLieBiaoData tempLieBiaoData = new GongChengLieBiaoData();            tempLieBiaoData.name = tempData.name;            tempLieBiaoData.type = GongChengType.shiPin;            tempLieBiaoData.state = tempData.status ? GongChengState.normal : GongChengState.warning;            datas.Add(tempLieBiaoData);        }        GClist_QuanBuButton.GetComponentInChildren<Text>().color = Color.white;        GClist_ShuiWeiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_ShuiYaButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_WeiYiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_ShiPinButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        for (int i = 0; i < currentGongChengLieBiaoItems.Count; i++)        {            Destroy(currentGongChengLieBiaoItems[i].gameObject);        }        currentGongChengLieBiaoItems = new List<GongChengLieBiaoItem>();        for (int i = 0; i < datas.Count; i++)        {            GongChengLieBiaoItem tempItem = Instantiate(GongChengLieBiaoItemOri, _gongChengLieBiaoContent)                .GetComponent<GongChengLieBiaoItem>();            tempItem.Init();            datas[i].index = i + 1;            tempItem.SetData(datas[i]);            currentGongChengLieBiaoItems.Add(tempItem);        }    }    //筛选工程列表    public void SeachGongChengList(GongChengType type)    {        GClist_QuanBuButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_ShuiWeiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_ShuiYaButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_WeiYiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_ShiPinButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        switch (type)        {            case GongChengType.all:                GClist_QuanBuButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(true);                }                break;            case GongChengType.shuiWei:                GClist_ShuiWeiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.shuiWei);                }                break;            case GongChengType.shuiYa:                GClist_ShuiYaButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.shuiYa);                }                break;            case GongChengType.weiYi:                GClist_WeiYiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.weiYi);                }                break;            case GongChengType.shiPin:                GClist_ShiPinButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.shiPin);                }                break;        }    }    //监控列表    public async Task CreatObsItem()    {        await new WaitUntil(() => { return GlobalData.obsDatas_by.Count > 0&& GlobalData.obsDatas_tk.Count>0; });        _obsItems = new List<ObsItem>();        _obsIconCtrls = new List<ObsIconCtrl>();                for (int i = 0; i < GlobalData.obsDatas_by.Count; i++)        {            ObsItem tempItem = Instantiate(obsItemPrefab, obsItemContent).GetComponent<ObsItem>();            tempItem.SetData(GlobalData.obsDatas_by[i]);            _obsItems.Add(tempItem);            ObsIconCtrl tempIcon = Instantiate(obsIconPrefab, _obsIconContent).GetComponent<ObsIconCtrl>();            tempIcon.Init(GlobalData.obsDatas_by[i]);            _obsIconCtrls.Add(tempIcon);            //Debug.Log(StaticLod.instance.GetStaticObj(GlobalData.obsDatas[i].name).gameObject.name);        }                for (int i = 0; i < GlobalData.obsDatas_tk.Count; i++)        {            ObsItem tempItem = Instantiate(obsItemPrefab, obsItemContent).GetComponent<ObsItem>();            tempItem.SetData(GlobalData.obsDatas_tk[i]);            _obsItems.Add(tempItem);            ObsIconCtrl tempIcon = Instantiate(obsIconPrefab, _obsIconContent).GetComponent<ObsIconCtrl>();            tempIcon.Init(GlobalData.obsDatas_tk[i]);            _obsIconCtrls.Add(tempIcon);            //Debug.Log(StaticLod.instance.GetStaticObj(GlobalData.obsDatas[i].name).gameObject.name);        }        SetObsIconActive(obsToggle.isOn);    }    public void SearchObsItem(string s_name)    {        if (s_name.Equals(""))        {            for (int i = 0; i < _obsItems.Count; i++)            {                _obsItems[i].gameObject.SetActive(true);            }        }        else        {            for (int i = 0; i < _obsItems.Count; i++)            {                _obsItems[i].gameObject.SetActive(_obsItems[i]._data.name.Contains(s_name));            }        }    }    //查找场景中的监控坐标对象    public void FindObsTargetObje()    {        if (_obsItems == null)        {            return;        }        GameObject[] BY_targs = GameObject.FindGameObjectsWithTag(obsType.BuYuanObs.ToString());        GameObject[] TK_targs = GameObject.FindGameObjectsWithTag(obsType.TaoKouObs.ToString());        for (int i = 0; i < _obsItems.Count; i++)        {            string objName = _obsItems[i]._data.targetName;            if (_obsItems[i]._data.type == obsType.BuYuanObs)            {                for (int j = 0; j < BY_targs.Length; j++)                {                    if (BY_targs[j].gameObject.name == objName)                    {                        _obsItems[i]._data.targetTransform = BY_targs[j].transform;                        _obsIconCtrls[i].targetTransForm = BY_targs[j].transform;                        break;                    }                }            }            else            {                for (int j = 0; j < TK_targs.Length; j++)                {                    if (TK_targs[j].gameObject.name == objName)                    {                        _obsItems[i]._data.targetTransform = TK_targs[j].transform;                        _obsIconCtrls[i].targetTransForm = TK_targs[j].transform;                        break;                    }                }            }        }    }    public void ShowObsPlayerPanel(ObsData _data)    {        obsPanel.gameObject.SetActive(true);        obsPanel.SetObsData(_data);        obsPanel.SetTitle(_data.name);    }    public void ShowHistoryPanle(ShuiWeiData data)    {        _shuiWeiHistoryPanel.SetData(data);        _shuiWeiHistoryPanel.gameObject.SetActive(true);    }    public void SetObsIconActive(bool show)    {        if (_obsIconCtrls == null)        {            return;        }        for (int i = 0; i < _obsIconCtrls.Count; i++)        {            _obsIconCtrls[i].gameObject.SetActive(show);        }    }    //水位图标    public void CreatShuiWeiIcon()    {        _shuiWeiIconCtrls = new List<ShuiWeiIconCtrl>();        for (int i = 0; i < GlobalData.BuYuanShuiWeiDataList.Count; i++)        {            ShuiWeiIconCtrl tempIcon =                Instantiate(shuiweiIconPrefab, _shuiWeiIconContent).GetComponent<ShuiWeiIconCtrl>();            tempIcon.Init(GlobalData.BuYuanShuiWeiDataList[i]);            _shuiWeiIconCtrls.Add(tempIcon);        }        creatShuiWeiIcon = true;    }    //查找场景中的水位坐标对象    public void FindShuiWeiTargetObje()    {        if (_shuiWeiIconCtrls == null)        {            return;        }        GameObject[] BY_targs = GameObject.FindGameObjectsWithTag(shuiWeiType.BuYuanShuiWei.ToString());        GameObject[] TK_targs = GameObject.FindGameObjectsWithTag(shuiWeiType.TaoKouShuiWei.ToString());        for (int i = 0; i < _shuiWeiIconCtrls.Count; i++)        {            string objName = _shuiWeiIconCtrls[i]._data.targetName;            if (_shuiWeiIconCtrls[i]._data.type == shuiWeiType.BuYuanShuiWei)            {                for (int j = 0; j < BY_targs.Length; j++)                {                    if (BY_targs[j].gameObject.name == objName)                    {                        _shuiWeiIconCtrls[i].targetTransForm = BY_targs[j].transform;                        break;                    }                }            }            else            {                for (int j = 0; j < TK_targs.Length; j++)                {                    if (TK_targs[j].gameObject.name == objName)                    {                        _shuiWeiIconCtrls[i].targetTransForm = TK_targs[j].transform;                        break;                    }                }            }        }    }    //水压图标    public void CreatShuiYaIcon()    {        _shuiYaIconCtrls = new List<ShuiYaIconCtrl>();        for (int i = 0; i < GlobalData.BuYuanShuiYaDataList.Count; i++)        {            ShuiYaIconCtrl tempIcon = Instantiate(shuiYaIconPrefab, _shuiYaIconContent).GetComponent<ShuiYaIconCtrl>();            tempIcon.Init(GlobalData.BuYuanShuiYaDataList[i]);            _shuiYaIconCtrls.Add(tempIcon);        }        creatShuiYaIcon = true;    }    public void FindShuiYaTargetObje()    {        if (_shuiYaIconCtrls == null)        {            return;        }        GameObject[] BY_targs = GameObject.FindGameObjectsWithTag(shuiYaType.BuYuanShuiYa.ToString());        GameObject[] TK_targs = GameObject.FindGameObjectsWithTag(shuiYaType.TaoKouShuiYa.ToString());        for (int i = 0; i < _shuiYaIconCtrls.Count; i++)        {            string objName = _shuiYaIconCtrls[i]._data.targetName;            if (_shuiYaIconCtrls[i]._data.type == shuiYaType.BuYuanShuiYa)            {                for (int j = 0; j < BY_targs.Length; j++)                {                    if (BY_targs[j].gameObject.name == objName)                    {                        _shuiYaIconCtrls[i].targetTransForm = BY_targs[j].transform;                        break;                    }                }            }            else            {                for (int j = 0; j < TK_targs.Length; j++)                {                    if (TK_targs[j].gameObject.name == objName)                    {                        _shuiYaIconCtrls[i].targetTransForm = TK_targs[j].transform;                        break;                    }                }            }        }    }    //位移图标    public void CreatWeiYiIcon()    {        _weiYiIconCtrls = new List<WeiYiIconCtrl>();        for (int i = 0; i < GlobalData.BuYuanWeiYiDataList.Count; i++)        {            WeiYiIconCtrl tempIcon = Instantiate(weiYiIconPrefab, _weiYiIconContent).GetComponent<WeiYiIconCtrl>();            tempIcon.Init(GlobalData.BuYuanWeiYiDataList[i]);            _weiYiIconCtrls.Add(tempIcon);        }        creatWeiYiIcon = true;    }    public void FindWeiYiTargetObje()    {        if (_weiYiIconCtrls == null)        {            return;        }        GameObject[] BY_targs = GameObject.FindGameObjectsWithTag(weiYiType.BuYuanWeiYi.ToString());        GameObject[] TK_targs = GameObject.FindGameObjectsWithTag(weiYiType.TaoKouWeiYi.ToString());        for (int i = 0; i < _weiYiIconCtrls.Count; i++)        {            string objName = _weiYiIconCtrls[i]._data.targetName;            if (_weiYiIconCtrls[i]._data.type == weiYiType.BuYuanWeiYi)            {                for (int j = 0; j < BY_targs.Length; j++)                {                    if (BY_targs[j].gameObject.name == objName)                    {                        _weiYiIconCtrls[i].targetTransForm = BY_targs[j].transform;                        break;                    }                }            }            else            {                for (int j = 0; j < TK_targs.Length; j++)                {                    if (TK_targs[i].gameObject.name == objName)                    {                        _weiYiIconCtrls[i].targetTransForm = TK_targs[j].transform;                        break;                    }                }            }        }    }    public void SetShuiWeiIconActive(bool show)    {        for (int i = 0; i < _shuiWeiIconCtrls.Count; i++)        {            _shuiWeiIconCtrls[i].gameObject.SetActive(show);        }    }    public void SetShuiYaIconActive(bool show)    {        for (int i = 0; i < _shuiYaIconCtrls.Count; i++)        {            _shuiYaIconCtrls[i].gameObject.SetActive(show);        }    }    public void SetWeiYiIconActive(bool show)    {        for (int i = 0; i < _weiYiIconCtrls.Count; i++)        {            _weiYiIconCtrls[i].gameObject.SetActive(show);        }    }}
 |