| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045 | 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);        if (GlobalData.buYuanSensorData != null)        {            if (GlobalData.buYuanSensorData.data.Count < 1)            {                await HttpHelper._Instance.SendBuYuan_GetSensorData();            }            if (GlobalData.buYuanSensorData.data.Count > 0)            {                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(7));                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(8));                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(8));                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()    {        ZhaZhanJianKongData[] datas = new ZhaZhanJianKongData[GlobalData.buYuanSensorData.data.Count];        for (int i = 0; i < datas.Length; i++)        {            datas[i] = new ZhaZhanJianKongData()            {                name = "闸门_" + GlobalData.buYuanSensorData.data[i].sensor_id,                openValue = GlobalData.buYuanSensorData.data[i].gate_open ? 1 : 0,                state = GlobalData.buYuanSensorData.data[i].gate_open                    ? ZhaZhanState.open                    : ZhaZhanState.close,                //DevicesData._Instance.buYuanSensorData            };        }        for (int i = 0; i < currentZhaZhanJianKongItems.Count; i++)        {            Destroy(currentZhaZhanJianKongItems[i].gameObject);        }        currentZhaZhanJianKongItems.Clear();        if (datas != null && datas.Length > 0)        {            for (int i = 0; i < datas.Length; 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)        {            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.Count > 0;        });        _obsItems = new List<ObsItem>();        _obsIconCtrls = new List<ObsIconCtrl>();        for (int i = 0; i < GlobalData.obsDatas.Count; i++)        {            ObsItem tempItem = Instantiate(obsItemPrefab, obsItemContent).GetComponent<ObsItem>();            tempItem.SetData(GlobalData.obsDatas[i]);            _obsItems.Add(tempItem);            ObsIconCtrl tempIcon = Instantiate(obsIconPrefab, _obsIconContent).GetComponent<ObsIconCtrl>();            tempIcon.Init(GlobalData.obsDatas[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);        }    }}
 |