| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749 | using Newtonsoft.Json.Linq;using Newtonsoft.Json;using System;using System.Collections;using System.Collections.Generic;using System.Linq;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 XCharts.Runtime;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;    public Button bjjkBtn;    public Button bjxxBtn;    public GameObject bjScrollView;    //泵站监控面板    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_ShiPinButton;    private Button GClist_jingLiShuiZhunYiButton;    private Button GClist_ShenYaJiButton;    private Button GClist_ShuiWeiButton;    private Button GClist_WenDuButton;    private Button GClist_yinZhangXianYiButton;    private Button GClist_chuiXianZuoBiaoYiButton;    private Button GClist_tuYaLiJiButton;    private Button GClist_yingLiJiButton;    private Button GClist_sanXiangWeiCuoJiButton;    private Button GClist_erXiangCeFengJiButton;    private Button GClist_weiYiJiButton;        //视频监控    [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;    //水压    public GameObject shuiYaIconPrefab;    private List<ShuiYaIconCtrl> _shuiYaIconCtrls = new List<ShuiYaIconCtrl>();    private Transform _shuiYaIconContent;    //位移    public GameObject weiYiIconPrefab;    private List<WeiYiIconCtrl> _weiYiIconCtrls = new List<WeiYiIconCtrl>();    private Transform _weiYiIconContent;    public GameObject deviceIconPrefab;    public List<DeviceIconCtrl> deviceIconCtrlList = new List<DeviceIconCtrl>();    private Transform deviceIconContent;    private Toggle ObsToggle;    private Toggle shuiWeiToggle;    private Toggle shenYaJiToggle;    private Toggle jingLiShuiZhunYiToggle;    private Toggle wenDuToggle;    private Toggle yinZhangXianYiToggle;    private Toggle chuiXianZuoBiaoYiToggle;    private Toggle tuYaLiJiToggle;    private Toggle yingLiJiToggle;    private Toggle sanXiangWeiCuoJiToggle;    private Toggle erXiangCeFengJiToggle;    private Toggle weiYiJiToggle;    public RectTransform main;    public RectTransform miniMap;    public Button globalWeatherBtn;    public Button exitGlobalWeatherBtn;    private ShuiWeiHistoryPanel _shuiWeiHistoryPanel;    public RectTransform miniMapQXContent;    public RectTransform miniMapSWContent;    public GameObject dropUnitPrefab;    public GameObject weatherUnitPrefab;    public Button qxDataBtn;    public 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 int currentDataType = -1;    public GameObject loading;    public Button buyuanBtn;    public Button taokouBtn;    private List<GongChengLieBiaoData> _DevivesDatas = new List<GongChengLieBiaoData>();    public GameObject _DeviceTrendPanelOri;    private Dictionary<string, DeviceTrendPanel> openDeviceTrendPanelList = new Dictionary<string, DeviceTrendPanel>();    //public GongChengLieBiaoItem currentSelectItem;    //上下游水位    public ShuiWeiCtrl swSY;    public ShuiWeiCtrl swXY;    private void Awake()    {        _Instance = this;        Init();        _shuiWeiHistoryPanel = this.transform.Find("Main/ShuiWeiHistoryPanel").GetComponent<ShuiWeiHistoryPanel>();        _shuiWeiHistoryPanel.Init();        _shuiWeiHistoryPanel.gameObject.SetActive(false);        buyuanBtn.onClick.AddListener(OnBuYuanClick);        taokouBtn.onClick.AddListener(OnTaoKouClick);    }    public void OnBuYuanClick() {        buyuanBtn.GetComponent<CanvasGroup>().alpha = 1f;        taokouBtn.GetComponent<CanvasGroup>().alpha = 0.5f;        SetCurrentDataToPanel(0);    }    public void OnTaoKouClick()    {        buyuanBtn.GetComponent<CanvasGroup>().alpha = 0.5f;        taokouBtn.GetComponent<CanvasGroup>().alpha = 1f;        SetCurrentDataToPanel(1);    }    private async void OnEnable()    {        StaticLod.instance.OnFoucusStatic(0);        if (GlobalData.BuYuanShuiWeiDataList.Count < 1)        {            await HttpHelper._Instance.InitSWYJData();        }        if (GlobalData.BuYuanShuiYaDataList.Count < 1)        {            HttpHelper._Instance.GetBuYuanDevicesGroupInfo();        }        if (GlobalData.TaoKouShuiYaDataList.Count < 1)        {            HttpHelper._Instance.GetTaoKouDevicesGroupInfo();        }        SetCurrentDataToPanel(0);    }    public void Init()    {        swSY.Init();        swXY.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);            }        }        bjjkBtn.onClick.AddListener(() =>        {            bjScrollView.gameObject.SetActive(true);            bjjkBtn.GetComponentInChildren<Text>().color = Color.white;            bjxxBtn.GetComponentInChildren<Text>().color = Color.gray;        });        bjxxBtn.onClick.AddListener(() =>        {            bjScrollView.gameObject.SetActive(false);            bjjkBtn.GetComponentInChildren<Text>().color = Color.gray;            bjxxBtn.GetComponentInChildren<Text>().color = Color.white;        });        //闸站        _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/buttons/GClist_QuanBuButton").GetComponent<Button>();        GClist_QuanBuButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.all); });        GClist_ShuiWeiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_ShuiWeiButton").GetComponent<Button>();        GClist_ShuiWeiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.shuiWei); });        GClist_ShenYaJiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_ShenYaJiButton").GetComponent<Button>();        GClist_ShenYaJiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.shenYaJi); });        GClist_jingLiShuiZhunYiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_jingLiShuiZhunYiButton").GetComponent<Button>();        GClist_jingLiShuiZhunYiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.jingLiShuiZhunYi); });        GClist_ShiPinButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_ShiPinButton").GetComponent<Button>();        GClist_ShiPinButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.shiPin); });                GClist_WenDuButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_WenDuButton").GetComponent<Button>();        GClist_WenDuButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.wenDu); });                GClist_yinZhangXianYiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_yinZhangXianYiButton").GetComponent<Button>();        GClist_yinZhangXianYiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.yinZhangXianYi); });                GClist_chuiXianZuoBiaoYiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_chuiXianZuoBiaoYiButton").GetComponent<Button>();        GClist_chuiXianZuoBiaoYiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.chuiXianZuoBiaoYi); });                GClist_tuYaLiJiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_tuYaLiJiButton").GetComponent<Button>();        GClist_tuYaLiJiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.tuYaLiJi); });                GClist_yingLiJiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_yingLiJiButton").GetComponent<Button>();        GClist_yingLiJiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.yingLiJi); });                GClist_sanXiangWeiCuoJiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_sanXiangWeiCuoJiButton").GetComponent<Button>();        GClist_sanXiangWeiCuoJiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.sanXiangWeiCuoJi); });                GClist_erXiangCeFengJiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_erXiangCeFengJiButton").GetComponent<Button>();        GClist_erXiangCeFengJiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.erXiangCeFengJi); });                GClist_weiYiJiButton = this.transform.Find("RightUp/GongChengLieBiao/buttons/GClist_weiYiJiButton").GetComponent<Button>();        GClist_weiYiJiButton.onClick.AddListener(() => { SeachGongChengList(GongChengType.weiYiJi); });                //监控        //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;        deviceIconContent = this.transform.Find("Main/DeviceIconContent").transform;        ObsToggle = this.transform.Find("Main/IconToggles/ObsToggle").GetComponent<Toggle>();        shuiWeiToggle = this.transform.Find("Main/IconToggles/shuiWeiToggle").GetComponent<Toggle>();        shenYaJiToggle = this.transform.Find("Main/IconToggles/shenYaJiToggle").GetComponent<Toggle>();        jingLiShuiZhunYiToggle = this.transform.Find("Main/IconToggles/jingLiShuiZhunYiToggle").GetComponent<Toggle>();        wenDuToggle = this.transform.Find("Main/IconToggles/wenDuToggle").GetComponent<Toggle>();        yinZhangXianYiToggle = this.transform.Find("Main/IconToggles/yinZhangXianYiToggle").GetComponent<Toggle>();               chuiXianZuoBiaoYiToggle = this.transform.Find("Main/IconToggles/chuiXianZuoBiaoYiToggle").GetComponent<Toggle>();        tuYaLiJiToggle = this.transform.Find("Main/IconToggles/tuYaLiJiToggle").GetComponent<Toggle>();        yingLiJiToggle = this.transform.Find("Main/IconToggles/yingLiJiToggle").GetComponent<Toggle>();        sanXiangWeiCuoJiToggle = this.transform.Find("Main/IconToggles/sanXiangWeiCuoJiToggle").GetComponent<Toggle>();        erXiangCeFengJiToggle = this.transform.Find("Main/IconToggles/erXiangCeFengJiToggle").GetComponent<Toggle>();        weiYiJiToggle = this.transform.Find("Main/IconToggles/weiYiJiToggle").GetComponent<Toggle>();                ObsToggle.onValueChanged.AddListener(SetObsIconActive);        shuiWeiToggle.onValueChanged.AddListener(Set_shuiWeiJi_IconActive);        shenYaJiToggle.onValueChanged.AddListener(Set_shenYaJi_IconActive);        jingLiShuiZhunYiToggle.onValueChanged.AddListener(Set_jingLiShuiZhunYi_IconActive);        wenDuToggle.onValueChanged.AddListener(Set_wenDu_IconActive);        yinZhangXianYiToggle.onValueChanged.AddListener(Set_yinZhangXianYi_IconActive);        chuiXianZuoBiaoYiToggle.onValueChanged.AddListener(Set_chuiXianZuoBiaoYi_IconActive);        tuYaLiJiToggle.onValueChanged.AddListener(Set_tuYaLiJi_IconActive);        yingLiJiToggle.onValueChanged.AddListener(Set_yingLiJi_IconActive);        sanXiangWeiCuoJiToggle.onValueChanged.AddListener(Set_sanXiangWeiCuoJi_IconActive);        erXiangCeFengJiToggle.onValueChanged.AddListener(Set_erXiangCeFengJi_IconActive);        weiYiJiToggle.onValueChanged.AddListener(Set_weiYiJi_IconActive);        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;        //    dropToggle.gameObject.SetActive(true);        //    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;        //    dropToggle.gameObject.SetActive(false);        //    weatherToggle.gameObject.SetActive(true);        //});        miniMapQXContent.gameObject.SetActive(false);        miniMapSWContent.gameObject.SetActive(true);        swDataBtn.gameObject.SetActive(false);        qxDataBtn.gameObject.SetActive(false);        dropToggle.gameObject.SetActive(false);        weatherToggle.gameObject.SetActive(false);        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 override void OnUILeave()    {        base.OnUILeave();        viewMode = ViewMode.normal;        miniMap.gameObject.SetActive(false);        main.gameObject.SetActive(true);    }    public async void OnGlobalWeatherClick()    {        if (GlobalData.sWZDatas.Count < 1)            await HttpHelper._Instance.InitGCJKData();        GameObject shaPan = GameObject.FindGameObjectWithTag("ShaPan");        CameraManager.SwitchCamera(1);               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, GlobalData.sWZDatas[i].dropSum6);                weatherUnit.transform.localScale = Vector3.one * 1.1f;                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, GlobalData.sWZDatas[i].dropSum6);            }        }        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 async void SetCurrentDataToPanel(int type)    {        if (currentDataType == type)        {            return;        }        StaticLod.instance.OnFoucusStatic(type);        currentDataType = type;        await new UnityAsync.WaitUntil(() =>        {            return GlobalData.swDatas.Count > 10;        });        if (currentDataType == 0)        {            string swUp = null;            string swDown =null;            string swUpName="";            string swDownName="";            for (int i = 0; i < GlobalData.swDatas.Count; i++)            {                if (GlobalData.swDatas[i].stnm == "补元(闸上)")                {                    swUp = GlobalData.swDatas[i].upz;                    swUpName = GlobalData.swDatas[i].stnm;                }                if (GlobalData.swDatas[i].stnm == "补元(闸下)")                {                     swDown = GlobalData.swDatas[i].dwz;                     swDownName = GlobalData.swDatas[i].stnm;                }            }            var swTargets = GameObject.FindGameObjectsWithTag("BY_SW");            for (int i = 0; i < swTargets.Length; i++)            {                if (swTargets[i].name.Equals("BY_ZhaQian"))                {                    swSY.SetData(swUpName,swUp,swTargets[i].transform);                }                if (swTargets[i].name.Equals("BY_ZhaHou"))                {                    swXY.SetData(swDownName,swDown,swTargets[i].transform);                }            }                        GClist_ShuiWeiButton.gameObject.SetActive(false);            GClist_WenDuButton.gameObject.SetActive(true);            GClist_yinZhangXianYiButton.gameObject.SetActive(false);            GClist_chuiXianZuoBiaoYiButton.gameObject.SetActive(false);            GClist_tuYaLiJiButton.gameObject.SetActive(false);            GClist_yingLiJiButton.gameObject.SetActive(false);            GClist_sanXiangWeiCuoJiButton.gameObject.SetActive(false);            GClist_erXiangCeFengJiButton.gameObject.SetActive(false);            GClist_weiYiJiButton.gameObject.SetActive(false);                        shuiWeiToggle.gameObject.SetActive(false);            wenDuToggle.gameObject.SetActive(true);            yinZhangXianYiToggle.gameObject.SetActive(false);            chuiXianZuoBiaoYiToggle.gameObject.SetActive(false);            tuYaLiJiToggle.gameObject.SetActive(false);            yingLiJiToggle.gameObject.SetActive(false);            sanXiangWeiCuoJiToggle.gameObject.SetActive(false);            erXiangCeFengJiToggle.gameObject.SetActive(false);            weiYiJiToggle.gameObject.SetActive(false);        }        else        {            string swUp = null;            string swDown =null;            string swUpName="";            string swDownName="";            for (int i = 0; i < GlobalData.swDatas.Count; i++)            {                if (GlobalData.swDatas[i].stnm == "套口(闸上)")                {                    swUp = GlobalData.swDatas[i].upz;                    swUpName = GlobalData.swDatas[i].stnm;                }                if (GlobalData.swDatas[i].stnm == "套口(闸下)")                {                    swDown = GlobalData.swDatas[i].dwz;                    swDownName = GlobalData.swDatas[i].stnm;                }            }            var swTargets = GameObject.FindGameObjectsWithTag("TK_SW");            for (int i = 0; i < swTargets.Length; i++)            {                if (swTargets[i].name.Equals("TK_ZhaQian"))                {                    swSY.SetData(swUpName,swUp,swTargets[i].transform);                }                if (swTargets[i].name.Equals("TK_ZhaHou"))                {                    swXY.SetData(swDownName,swDown,swTargets[i].transform);                }            }            GClist_ShuiWeiButton.gameObject.SetActive(false);            GClist_WenDuButton.gameObject.SetActive(false);            GClist_yinZhangXianYiButton.gameObject.SetActive(true);            GClist_chuiXianZuoBiaoYiButton.gameObject.SetActive(true);            GClist_tuYaLiJiButton.gameObject.SetActive(true);            GClist_yingLiJiButton.gameObject.SetActive(true);            GClist_sanXiangWeiCuoJiButton.gameObject.SetActive(true);            GClist_erXiangCeFengJiButton.gameObject.SetActive(true);            GClist_weiYiJiButton.gameObject.SetActive(true);                        shuiWeiToggle.gameObject.SetActive(false);            wenDuToggle.gameObject.SetActive(false);            yinZhangXianYiToggle.gameObject.SetActive(true);            chuiXianZuoBiaoYiToggle.gameObject.SetActive(true);            tuYaLiJiToggle.gameObject.SetActive(true);            yingLiJiToggle.gameObject.SetActive(true);            sanXiangWeiCuoJiToggle.gameObject.SetActive(true);            erXiangCeFengJiToggle.gameObject.SetActive(true);            weiYiJiToggle.gameObject.SetActive(true);        }                            // //水位图标        // CreatShuiWeiIcon();        // FindShuiWeiTargetObje();        //        // //水压图标        // CreatShuiYaIcon();        // FindShuiYaTargetObje();        //        // //位移图标        // CreatWeiYiIcon();        // FindWeiYiTargetObje();        //隐藏不是当前站点的监控        var currentObsType = currentDataType == 0 ? obsType.BuYuanObs : obsType.TaoKouObs;        if (_obsItems != null)        {            for (int i = 0; i < _obsItems.Count; i++)            {                _obsItems[i].gameObject.SetActive(_obsItems[i]._data.type == currentObsType);            }        }        if (_obsIconCtrls != null)        {            for (int i = 0; i < _obsIconCtrls.Count; i++)            {                _obsIconCtrls[i].gameObject.SetActive(_obsIconCtrls[i]._data.type == currentObsType);            }        }                     SetGongChengLieBiaoData();        //新的增加图标        CreatIcons();                                SetObsIconActive(ObsToggle.isOn);        shuiWeiToggle.isOn = false;        shenYaJiToggle.isOn = false;        jingLiShuiZhunYiToggle.isOn = false;        wenDuToggle.isOn = false;        yinZhangXianYiToggle.isOn = false;        chuiXianZuoBiaoYiToggle.isOn = false;        tuYaLiJiToggle.isOn = false;        yingLiJiToggle.isOn = false;        sanXiangWeiCuoJiToggle.isOn = false;        erXiangCeFengJiToggle.isOn = false;        weiYiJiToggle.isOn = false;                Set_shuiWeiJi_IconActive(false);        Set_shenYaJi_IconActive(false);        Set_jingLiShuiZhunYi_IconActive(false);        Set_wenDu_IconActive(false);        Set_yinZhangXianYi_IconActive(false);        Set_chuiXianZuoBiaoYi_IconActive(false);        Set_tuYaLiJi_IconActive(false);        Set_yingLiJi_IconActive(false);        Set_sanXiangWeiCuoJi_IconActive(false);        Set_erXiangCeFengJi_IconActive(false);        Set_weiYiJi_IconActive(false);                loading.gameObject.SetActive(true);        if (currentDataType == 0)        {            if (GlobalData.buYuanSensorData == null || GlobalData.buYuanSensorData.data.Count < 1)            {                await HttpHelper._Instance.SendBuYuan_GetSensorData();            }        }        else        {            if (GlobalData.taoKouSensorData == null || GlobalData.taoKouSensorData.data.Count < 1)            {                await HttpHelper._Instance.SendTaoKou_GetSensorData();            }        }        loading.gameObject.SetActive(false);        SetZhaZhanJianKongData();    }    public async void OpenDeviceTrendPanel(string _name, GongChengType _type, string _gid, string _sid)    {        if (openDeviceTrendPanelList.ContainsKey(_name))        {            return;        }        var tempTrendPanel = Instantiate(_DeviceTrendPanelOri, this.transform).GetComponent<DeviceTrendPanel>();        tempTrendPanel.currentType = currentDataType;        tempTrendPanel.InitDatePicker();        int openCount = openDeviceTrendPanelList.Count;        tempTrendPanel.transform.localPosition += new Vector3(40*openCount,-20*openCount,0);        await tempTrendPanel.Show(_name, _type, _gid, _sid);        openDeviceTrendPanelList.Add(_name, tempTrendPanel);    }    public void RemovePanel(DeviceTrendPanel panel)    {        if (openDeviceTrendPanelList.ContainsKey(panel.dataName))        {            openDeviceTrendPanelList.Remove(panel.dataName);        }    }    private void OnDisable()    {        foreach (var item in openDeviceTrendPanelList.Values)        {            item.Hide();        }    }    public void SetZhaZhanJianKongData()    {        List<ZhaZhanJianKongData> datas = new List<ZhaZhanJianKongData>();        var tempSensorData = currentDataType == 0 ? GlobalData.buYuanSensorData.data : GlobalData.taoKouSensorData.data;        Debug.Log(tempSensorData.Count);        for (int i = 0; i < tempSensorData.Count; i++)        {            datas.Add(new ZhaZhanJianKongData()            {                name =  tempSensorData[i].sensor_id + "#闸门",                openValue = tempSensorData[i].opening_degree * 0.01f,                state = tempSensorData[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(i,datas[i]);                currentZhaZhanJianKongItems.Add(tempItem);            }        }        float[] modelAniValues = new float[datas.Count];        for (int i = 0; i < modelAniValues.Length; i++)        {            modelAniValues[i] = datas[i].openValue;        }        ActionInstance._Instance.ModelAni_On?.Invoke(currentDataType == 0 ? AniType.buYuan : AniType.taoKou,            modelAniValues);    }    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()    {        _DevivesDatas.Clear();        string stationName = currentDataType == 0 ? "补元" : "套口";        foreach (var devicesData in GlobalData._devicesIdDatas.Values)        {            if (devicesData.stationName.Equals(stationName))            {                GongChengLieBiaoData tempLieBiaoData = new GongChengLieBiaoData();                tempLieBiaoData.name = devicesData.sensorName;                tempLieBiaoData.stationName = currentDataType == 0 ? $"BY_{devicesData.sensorName}" : $"TK_{devicesData.sensorName}";                tempLieBiaoData.value = devicesData.realtimeValue1;                tempLieBiaoData.valueType = devicesData.unitValue1;                switch (devicesData.sensorType)                {                    case "水位计":                        tempLieBiaoData.type = GongChengType.shuiWei;                        break;                    case "渗压计":                        tempLieBiaoData.type = GongChengType.shenYaJi;                        break;                    case "静力水准仪":                        tempLieBiaoData.type = GongChengType.jingLiShuiZhunYi;                        break;                    case "温度":                        tempLieBiaoData.type = GongChengType.wenDu;                        break;                    case "引张线仪":                        tempLieBiaoData.type = GongChengType.yinZhangXianYi;                        break;                    case "垂线坐标仪":                        tempLieBiaoData.type = GongChengType.chuiXianZuoBiaoYi;                        break;                    case "土压力计":                        tempLieBiaoData.type = GongChengType.tuYaLiJi;                        break;                    case "应力计":                        tempLieBiaoData.type = GongChengType.yingLiJi;                        break;                    case "三向位错计":                        tempLieBiaoData.type = GongChengType.sanXiangWeiCuoJi;                        break;                    case "二向测缝计":                        tempLieBiaoData.type = GongChengType.erXiangCeFengJi;                        break;                    case "位移计":                        tempLieBiaoData.type = GongChengType.weiYiJi;                        break;                }                tempLieBiaoData.state = GongChengState.normal;                tempLieBiaoData.sid = devicesData.dataSid;                tempLieBiaoData.gid = devicesData.dataGid;                _DevivesDatas.Add(tempLieBiaoData);            }        }                //监控        foreach (var tempData in currentDataType == 0 ? GlobalData.obsDatas_by : GlobalData.obsDatas_tk)        {            GongChengLieBiaoData tempLieBiaoData = new GongChengLieBiaoData();            tempLieBiaoData.name = tempData.name;            tempLieBiaoData.type = GongChengType.shiPin;            tempLieBiaoData.state = tempData.status ? GongChengState.normal : GongChengState.warning;            tempLieBiaoData.sid = "";            tempLieBiaoData.gid = ""; //监控没有这玩意            _DevivesDatas.Add(tempLieBiaoData);        }        GClist_QuanBuButton.GetComponentInChildren<Text>().color = Color.white;        GClist_ShuiWeiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_ShenYaJiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_jingLiShuiZhunYiButton.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 < _DevivesDatas.Count; i++)        {            GongChengLieBiaoItem tempItem = Instantiate(GongChengLieBiaoItemOri, _gongChengLieBiaoContent)                .GetComponent<GongChengLieBiaoItem>();            tempItem.Init();            _DevivesDatas[i].index = i + 1;            tempItem.SetData(_DevivesDatas[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_ShenYaJiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_jingLiShuiZhunYiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_ShiPinButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_WenDuButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_yinZhangXianYiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_chuiXianZuoBiaoYiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_tuYaLiJiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_yingLiJiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_sanXiangWeiCuoJiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_erXiangCeFengJiButton.GetComponentInChildren<Text>().color = new Color(0.6470588f, 0.7490196f, 0.8862745f);        GClist_weiYiJiButton.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.shenYaJi:                GClist_ShenYaJiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.shenYaJi);                }                break;            case GongChengType.jingLiShuiZhunYi:                GClist_jingLiShuiZhunYiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.jingLiShuiZhunYi);                }                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;            case GongChengType.wenDu:                GClist_WenDuButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.wenDu);                }                break;            case GongChengType.yinZhangXianYi:                GClist_yinZhangXianYiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.yinZhangXianYi);                }                break;            case GongChengType.chuiXianZuoBiaoYi:                GClist_chuiXianZuoBiaoYiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.chuiXianZuoBiaoYi);                }                break;            case GongChengType.tuYaLiJi:                GClist_tuYaLiJiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.tuYaLiJi);                }                break;            case GongChengType.yingLiJi:                GClist_yingLiJiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.yingLiJi);                }                break;            case GongChengType.sanXiangWeiCuoJi:                GClist_sanXiangWeiCuoJiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.sanXiangWeiCuoJi);                }                break;            case GongChengType.erXiangCeFengJi:                GClist_erXiangCeFengJiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.erXiangCeFengJi);                }                break;            case GongChengType.weiYiJi:                GClist_weiYiJiButton.GetComponentInChildren<Text>().color = Color.white;                foreach (var obj in currentGongChengLieBiaoItems)                {                    obj.gameObject.SetActive(obj._currentData.type == GongChengType.weiYiJi);                }                break;        }    }    Dictionary<string, bool> BYObsUseLib = new Dictionary<string, bool>();    Dictionary<string, bool> TKObsUseLib = new Dictionary<string, bool>();    //监控列表    public async void 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 < _obsItems.Count; i++)        {            Destroy(_obsItems[i].gameObject);        }        for (int i = 0; i < _obsIconCtrls.Count; i++)        {            Destroy(_obsIconCtrls[i].gameObject);        }        for (int i = 0; i < GlobalData.layerUnitDatas.Count; i++)        {            if (GlobalData.layerUnitDatas[i].type == LayerUnitType.JK)            {                if (GlobalData.layerUnitDatas[i].text1 == "补元退洪闸")                {                    BYObsUseLib.Add(GlobalData.layerUnitDatas[i].namePri, false);                }                else if (GlobalData.layerUnitDatas[i].text1 == "套口进洪闸")                {                    TKObsUseLib.Add(GlobalData.layerUnitDatas[i].namePri, false);                }            }        }        for (int i = 0; i < GlobalData.obsDatas_by.Count; i++)        {            if (BYObsUseLib.ContainsKey(GlobalData.obsDatas_by[i].targetName))            {                BYObsUseLib[GlobalData.obsDatas_by[i].targetName] = true;            }            //Debug.Log(GlobalData.obsDatas_by[i].name + ":000:" + GlobalData.obsDatas_by[i].targetName);            ObsItem tempItem = Instantiate(obsItemPrefab, obsItemContent).GetComponent<ObsItem>();            tempItem.SetData(GlobalData.obsDatas_by[i]);            int tempi = i;            tempItem._button.onClick.AddListener(() =>            {                GCJKLayer._Instance.ShowObsPlayerPanel(GlobalData.obsDatas_by[tempi]);            });            _obsItems.Add(tempItem);            ObsIconCtrl tempIcon = Instantiate(obsIconPrefab, _obsIconContent).GetComponent<ObsIconCtrl>();            //Debug.Log(GlobalData.obsDatas_by[i].name + ":111:" + GlobalData.obsDatas_by[i].targetName);            tempIcon.Init(GlobalData.obsDatas_by[i]);            _obsIconCtrls.Add(tempIcon);            //Debug.Log(StaticLod.instance.GetStaticObj(GlobalData.obsDatas[i].name).gameObject.name);        }        foreach (string keyName in BYObsUseLib.Keys)        {            if (!BYObsUseLib[keyName])            {                ObsIconCtrl tempIcon = Instantiate(obsIconPrefab, _obsIconContent).GetComponent<ObsIconCtrl>();                ObsData errorObs = new ObsData();                errorObs.name = keyName + "(丢失)";                errorObs.targetName = keyName;                errorObs.type = obsType.BuYuanObs;                errorObs.status = false;                tempIcon.Init(errorObs);                _obsIconCtrls.Add(tempIcon);            }        }        for (int i = 0; i < GlobalData.obsDatas_tk.Count; i++)        {            if (TKObsUseLib.ContainsKey(GlobalData.obsDatas_tk[i].targetName))            {                TKObsUseLib[GlobalData.obsDatas_tk[i].targetName] = true;            }            ObsItem tempItem = Instantiate(obsItemPrefab, obsItemContent).GetComponent<ObsItem>();            tempItem.SetData(GlobalData.obsDatas_tk[i]);            int tempi = i;            tempItem._button.onClick.AddListener(() =>            {                GCJKLayer._Instance.ShowObsPlayerPanel(GlobalData.obsDatas_tk[tempi]);            });            _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);        }        foreach (string keyName in TKObsUseLib.Keys)        {            if (!TKObsUseLib[keyName])            {                ObsIconCtrl tempIcon = Instantiate(obsIconPrefab, _obsIconContent).GetComponent<ObsIconCtrl>();                ObsData errorObs = new ObsData();                errorObs.name = keyName + "(丢失)";                errorObs.targetName = keyName;                errorObs.type = obsType.TaoKouObs;                errorObs.status = false;                tempIcon.Init(errorObs);                _obsIconCtrls.Add(tempIcon);            }        }        //隐藏不是当前站点的监控        var currentObsType = currentDataType == 0 ? obsType.BuYuanObs : obsType.TaoKouObs;        if (_obsItems != null)        {            for (int i = 0; i < _obsItems.Count; i++)            {                _obsItems[i].gameObject.SetActive(_obsItems[i]._data.type == currentObsType);            }        }        if (_obsIconCtrls != null)        {            for (int i = 0; i < _obsIconCtrls.Count; i++)            {                _obsIconCtrls[i].gameObject.SetActive(_obsIconCtrls[i]._data.type == currentObsType);            }        }        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(_obsIconCtrls[i]._data.type == (obsType)currentDataType && show);        }    }    public void CreatIcons()    {        foreach (var t in deviceIconCtrlList)        {            Destroy(t.gameObject);        }        deviceIconCtrlList = new List<DeviceIconCtrl>();        GameObject[] IconTargets = GameObject.FindGameObjectsWithTag("DeviceIconTarget");        foreach (var t in _DevivesDatas)        {            if (t.type==GongChengType.shiPin||t.stationName == null)            {                continue;            }            foreach (var iconTarget in IconTargets)            {                if (t.stationName.Equals(iconTarget.gameObject.name))                {                    Debug.Log(t.stationName);                    var tempIcon= Instantiate(deviceIconPrefab, deviceIconContent).GetComponent<DeviceIconCtrl>();                    DeviceIconData tempData = new DeviceIconData();                    tempData.name = t.name;                    tempData.targetName = iconTarget.gameObject.name;                    tempData.type = t.type;                    tempData.targetTransform = iconTarget.gameObject.transform;                    tempData.value = t.value;                    tempData.valueType = t.valueType;                    tempData.sid = t.sid;                    tempData.gid = t.gid;                    tempIcon.Init(tempData);                    deviceIconCtrlList.Add(tempIcon);                    break;                }            }        }    }        //水位图标    public void CreatShuiWeiIcon()    {        for (int i = 0; i < _shuiWeiIconCtrls.Count; i++)        {            Destroy(_shuiWeiIconCtrls[i].gameObject);        }        _shuiWeiIconCtrls = new List<ShuiWeiIconCtrl>();        var DataList = currentDataType == 0 ? GlobalData.BuYuanShuiWeiDataList : GlobalData.TaoKouShuiWeiDataList;        for (int i = 0; i < DataList.Count; i++)        {            ShuiWeiIconCtrl tempIcon =                Instantiate(shuiweiIconPrefab, _shuiWeiIconContent).GetComponent<ShuiWeiIconCtrl>();            tempIcon.Init(DataList[i]);            _shuiWeiIconCtrls.Add(tempIcon);        }        Debug.Log(DataList.Count);    }    //查找场景中的水位坐标对象    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()    {        for (int i = 0; i < _shuiYaIconCtrls.Count; i++)        {            Destroy(_shuiYaIconCtrls[i].gameObject);        }        _shuiYaIconCtrls = new List<ShuiYaIconCtrl>();        var DataList = currentDataType == 0 ? GlobalData.BuYuanShuiYaDataList : GlobalData.TaoKouShuiYaDataList;        for (int i = 0; i < DataList.Count; i++)        {            ShuiYaIconCtrl tempIcon = Instantiate(shuiYaIconPrefab, _shuiYaIconContent).GetComponent<ShuiYaIconCtrl>();            tempIcon.Init(DataList[i]);            _shuiYaIconCtrls.Add(tempIcon);        }    }    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()    {        for (int i = 0; i < _weiYiIconCtrls.Count; i++)        {            Destroy(_weiYiIconCtrls[i].gameObject);        }        _weiYiIconCtrls = new List<WeiYiIconCtrl>();        var DataList = currentDataType == 0 ? GlobalData.BuYuanWeiYiDataList : GlobalData.TaoKouWeiYiDataList;        for (int i = 0; i < DataList.Count; i++)        {            WeiYiIconCtrl tempIcon = Instantiate(weiYiIconPrefab, _weiYiIconContent).GetComponent<WeiYiIconCtrl>();            tempIcon.Init(DataList[i]);            _weiYiIconCtrls.Add(tempIcon);        }    }    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 Set_shuiWeiJi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.shuiWei))        {            t.gameObject.SetActive(show);        }    }    public void Set_shenYaJi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.shenYaJi))        {            t.gameObject.SetActive(show);        }    }    public void Set_jingLiShuiZhunYi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.jingLiShuiZhunYi))        {            t.gameObject.SetActive(show);        }    }    public void Set_wenDu_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.wenDu))        {            t.gameObject.SetActive(show);        }    }    public void Set_yinZhangXianYi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.yinZhangXianYi))        {            t.gameObject.SetActive(show);        }    }    public void Set_chuiXianZuoBiaoYi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.chuiXianZuoBiaoYi))        {            t.gameObject.SetActive(show);        }    }    public void Set_tuYaLiJi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.tuYaLiJi))        {            t.gameObject.SetActive(show);        }    }    public void Set_yingLiJi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.yingLiJi))        {            t.gameObject.SetActive(show);        }    }    public void Set_sanXiangWeiCuoJi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.sanXiangWeiCuoJi))        {            t.gameObject.SetActive(show);        }    }    public void Set_erXiangCeFengJi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.erXiangCeFengJi))        {            t.gameObject.SetActive(show);        }    }    public void Set_weiYiJi_IconActive(bool show)    {        foreach (var t in deviceIconCtrlList.Where(t => t._data.type == GongChengType.weiYiJi))        {            t.gameObject.SetActive(show);        }    }        public GameObject gongChengPanel;    public Text zhaZhanMingCheng;    public Text zhaMenKaiDu;    public Text guoZhaLiuLiang;    public Text zhaQianShuiWei;    public Text zhaHouShuiWei;    public BarChart shuiweiChart;        public void OpenZhaMenInfoPanel(int _index, ZhaZhanJianKongData itemData)    {        gongChengPanel.SetActive(true);        zhaZhanMingCheng.text = itemData.name;        var floorGateData = currentDataType == 0 ? GlobalData.floorGateData.buYuan : GlobalData.floorGateData.taoKou;        zhaMenKaiDu.text = $"{floorGateData[_index].opening_degree:0.00}<size=14><color=#A5BFE2>m</color></size>";        guoZhaLiuLiang.text = $"-<size=14><color=#A5BFE2>m\u00b3/s</color></size>";                if (currentDataType == 0)        {            string swUp = null;            string swDown = null;            string swUpName = "";            string swDownName = "";            for (int i = 0; i < GlobalData.swDatas.Count; i++)            {                if (GlobalData.swDatas[i].stnm == "补元(闸上)")                {                    swUp = GlobalData.swDatas[i].upz;                    swUpName = GlobalData.swDatas[i].stnm;                }                if (GlobalData.swDatas[i].stnm == "补元(闸下)")                {                    swDown = GlobalData.swDatas[i].dwz;                    swDownName = GlobalData.swDatas[i].stnm;                }            }            zhaQianShuiWei.text = swUp == null ? $"- <size=14><color=#A5BFE2>m</color></size>" : $"{swUp} <size=14><color=#A5BFE2>m</color></size>";            zhaHouShuiWei.text = swDown == null ? $"- <size=14><color=#A5BFE2>m</color></size>" : $"{swDown} <size=14><color=#A5BFE2>m</color></size>";        }        else        {            string swUp = null;            string swDown =null;            string swUpName="";            string swDownName="";            for (int i = 0; i < GlobalData.swDatas.Count; i++)            {                if (GlobalData.swDatas[i].stnm == "套口(闸上)")                {                    swUp = GlobalData.swDatas[i].upz;                    swUpName = GlobalData.swDatas[i].stnm;                }                if (GlobalData.swDatas[i].stnm == "套口(闸下)")                {                    swDown = GlobalData.swDatas[i].dwz;                    swDownName = GlobalData.swDatas[i].stnm;                }            }            zhaQianShuiWei.text = swUp == null ? $"- <size=14><color=#A5BFE2>m</color></size>" : $"{swUp} <size=14><color=#A5BFE2>m</color></size>";            zhaHouShuiWei.text = swDown == null ? $"- <size=14><color=#A5BFE2>m</color></size>" : $"{swDown} <size=14><color=#A5BFE2>m</color></size>";        }        var shuiweiData = currentDataType == 0 ? GlobalData.floorGateData.swzxtBY : GlobalData.floorGateData.swzxtTK;        XAxis tempXaxis = shuiweiChart.GetChartComponent<XAxis>();        tempXaxis.data.Clear();        for (int i = 0; i < shuiweiData.Length; i++)        {            tempXaxis.AddData(shuiweiData[i].key);        }        var tempSeries = shuiweiChart.series;        tempSeries[0].serieName = "水位";        SerieData[] tempDatas = new SerieData[shuiweiData.Length];        for (int i = 0; i < tempDatas.Length; i++)        {            tempDatas[i] = new SerieData();            tempDatas[i].data = new List<double>();            tempDatas[i].data.Add(i);            string value = shuiweiData[i].value;            if (value == "-") {                value = "-1";            }            tempDatas[i].data.Add(float.Parse(value));        }        tempSeries[0].data.Clear();        tempSeries[0].data.AddRange(tempDatas);    }    }
 |